Sequelize 操作 MongoDB 数据库完整指南

阅读时长 7 分钟读完

前言

随着前端技术的不断发展和进步,越来越多的开发者开始使用 JavaScript 构建全栈应用,其中 Sequelzie 是一个非常流行的 ORM(Object-Relational-Mapping)库,方便开发者在 Node.js 环境下使用关系型数据库。在 Sequelzie 3.0 版本中,添加了对 MongoDB 的支持,使得 MongoDB 与使用 SQL 数据库一样方便地被操作。

本篇文章将详细介绍 Sequelzie 如何操作 MongoDB 数据库,包括创建连接、定义模型、CRUD 操作等,并提供示例代码,帮助读者更好地理解相关知识。

环境

在进行接下来的操作之前,需要确保已经安装了 Node.js 和 MongoDB 数据库,并且能够在本地环境中运行。

安装依赖

在终端中输入如下命令来安装相关依赖:

其中,sequelize-cli 是 Sequelize 的命令行工具,可以帮助我们更方便地进行各种操作。

创建项目

首先,我们需要创建一个新的项目,并且进行初始化,具体操作如下:

在创建好项目后,我们还需要添加一个 .sequelizerc 文件,并且在其中添加 MongoDB 数据库的配置信息。具体操作如下:

打开文件,输入如下内容:

以上内容中,config 表示配置文件所在路径,models-path 表示模型文件所在路径,seeders-path 表示数据填充文件所在路径,migrations-path 表示迁移文件所在路径。其中,我们需要在 config 目录下新建一个 database.js 文件,并且在其中添加 MongoDB 数据库的配置信息。具体如下:

创建连接

在完成了前面的几个步骤之后,接下来就可以开始创建连接了。我们需要先引入 Sequelize 包,并且在配置文件中添加相应的配置信息。具体操作如下:

-- -------------------- ---- -------
----- --------- - ---------------------
----- ------ - -----------------------------

----- --------- - --- -------------------------- ---------------- ---------------- -
  ----- ------------
  ----- ------------
  -------- ---------------
  -------- ------
  ------- -
    ----------- -----
  -
---

-------------- - ----------

在以上代码中,我们首先将 Sequelzie 引入进来,然后通过 Sequelize 构造函数创建了一个连接,同时也将其导出,方便其他模块进行调用。其中,我们需要将数据库的配置信息传递给构造函数,同时还可以对一些默认配置进行修改,比如关闭日志输出和禁用自动生成时间戳。更详细的说明请参考文档。

定义模型

在进行 CRUD 操作之前,我们需要先定义好相关的模型,方便后续进行操作。在 Sequelzie 中,我们可以通过 extend() 方法来定义相关的模型。具体创建一个 User 模型操作如下:

-- -------------------- ---- -------
----- - ------ --------- - - ---------------------
----- --------- - -------------------------

----- ---- ------- ----- --

-----------
  --------- -
    ----- ---------------------
    ---------- -----
  --
  ------ -
    ----- ---------------------
    ---------- -----
  --
  --------- -
    ----- ----------------------
    ---------- -----
  --
  ------- -
    ----- ------------------
    ---------- ------
    ------------- -----
  -
-- -
  ----------
  ----------- ------
  ---------- ------
---

-------------- - -----

在上面的代码中,我们首先调用 Model.init() 方法来定义模型,其中需要传递两个参数,即属性和选项。在属性中,我们使用 DataTypes 来定义字段的类型,然后在选项中,我们可以指定模型对应的表名,并且设置一些默认值。

CRUD 操作

1. 创建数据

-- -------------------- ---- -------
----- ---- - --------------------------

----- ------ - ----- -- -- -
  ----- ---- - ----- -------------
    --------- --------
    ------ --------------------
    --------- ---------
    ------- ----
  ---

  ---------------------------
-

---------

以上代码中,我们首先声明一个 create 函数,并且在其中通过 User.create() 方法来创建一个用户,并且打印出其 JSON 形式的数据。其中,我们需要传递一个对象来设置用户的属性,然后使用 await 关键字来等待 Promise 结果。

2. 获取数据

-- -------------------- ---- -------
----- ---- - --------------------------

----- ------- - ----- -- -- -
  ----- ----- - ----- -------------- ---- ---- ---

  -------------------
-

----------

以上代码中,我们使用了 User.findAll() 方法,来查询所有的用户,并且使用使用 raw: true 选项,来获取原生 JSON 数据。

3. 更新数据

-- -------------------- ---- -------
----- ---- - --------------------------

----- ------ - ----- -- -- -
  ----- ---- - ----- -------------- ------ - --------- ------- - ---
  ----------- - -----

  ----- ------------

  ---------------------------
-

---------

以上代码中,我们首先通过 User.findOne() 方法来查询到满足条件的一个用户,然后将其属性中的 active 值修改为 true,并且使用 save() 方法来保存修改。

4. 删除数据

-- -------------------- ---- -------
----- ---- - --------------------------

----- ------- - ----- -- -- -
  ----- ---- - ----- -------------- ------ - --------- ------- - ---

  ----- ---------------

  ---------------------------
-

----------

以上代码中,我们首先通过 User.findOne() 方法来查询到满足条件的一个用户,然后使用 destroy() 方法来删除该用户。

总结

通过本文的介绍,我们已经可以初步掌握在 Sequelzie 中使用 MongoDB 数据库的方法。在实际开发中,我们还需要根据实际情况进行调整并且进行相关的优化,提高代码的可维护性和可读性。希望本文能够对大家在使用 Sequelzie 操作 MongoDB 数据库时提供一些帮助,进而更好地进行开发工作。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65b38e66add4f0e0ffc9d892

纠错
反馈