Mongoose 中文 API 文档

阅读时长 8 分钟读完

Mongoose 是一个 MongoDB 对象模型工具,它提供了对 MongoDB 数据库进行 CRUD 操作的接口。在 Node.js 开发环境中,使用 Mongoose 可以更加方便地进行数据库的操作。本文将介绍 Mongoose 中文 API 文档,帮助读者更好地了解 Mongoose 的各种接口以及如何使用它们。

安装

首先,需要在项目中安装 Mongoose。可以使用 npm 或者 yarn 进行安装:

如果使用 yarn,可以运行以下命令进行安装:

安装完成后,就可以在项目的代码中引入 Mongoose 了。

连接数据库

在使用 Mongoose 进行数据库操作之前,需要先连接数据库。可以使用 mongoose.connect() 方法连接数据库。

以上代码中,mongoose.connect() 方法接受两个参数:第一个参数为数据库的链接地址,第二个参数为选项。选项可以控制 Mongoose 的一些行为。

其中,useNewUrlParser 选项用于向 MongoDB 连接请求中添加 useNewUrlParser 字段,用以确保 Mongoose 在连接时不会使用旧的解析器。useUnifiedTopology 选项使用新的 MongoDB 驱动程序引入的 topology engine 以使用 MongoDB Server Discovery 和 Monitoring Engine,并取消了建议选择复制集连接的警告。useFindAndModify 选项将使用 MongoDB 自己的 findAndModify,而不是 Mongoose 的 findOneAndUpdate 等操作,以避免 DeprecationWarning 信息。useCreateIndex 选项将 MongoDB 和 Mongoose 中使用的 ensureIndex() 函数替换为 createIndex()

创建 MongoDB Schema

在 Mongoose 中,可以使用 mongoose.Schema 方法创建 MongoDB 的 Schema。Schema 是一种用于定义 MongoDB 中文档结构的方式。

以下是一个简单的例子:

上面的代码中,userSchema 描述了一个用户文档的结构,包含了三个字段:namepasswordemail。这些字段的数据类型都是字符串。

创建 Model

一旦有了 Schema,就可以使用 Mongoose 的 mongoose.model() 方法创建 Model。

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

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

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

上面的代码中,使用 mongoose.model() 方法创建了一个名为 User 的 Model。User 的 Schema 是 userSchema。这时,User 就可以用来对数据库进行 CRUD 操作了。

创建文档

一旦有了 Model,就可以使用它来创建文档了。可以使用 new 操作符创建一个新的文档,然后使用 save() 方法将文档保存到数据库中。

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

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

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

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

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

上面的代码中,user 是一个新的文档对象,它的属性值对应了 userSchema 中定义的字段。通过调用 save() 方法,将文档保存到数据库中。save() 方法接受一个回调函数,当文档保存成功时,回调函数将被调用并传递保存的用户数据。

查询文档

在 Mongoose 中,可以使用 find() 方法查询数据库中符合条件的文档。

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

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

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

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

上面的代码中,User.find() 方法接受一个查询条件 { name: 'John' },并在数据库中查找所有 name 字段等于 'John' 的文档。find() 方法的回调函数将在查询完成时被调用。

更新文档

使用 Mongoose 可以很方便地更新一个文档。可以使用 updateOne() 方法更新单个文档,或者使用 updateMany() 方法更新多个文档。

以下是一个更新单个文档的例子:

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

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

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

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

上面的代码中,User.updateOne() 方法接受两个参数:第一个参数为更新条件 { name: 'John' },第二个参数为更新值 { email: 'new@example.com' }。这将在数据库中查找 name 等于 'John' 的文档,并将它的 email 更新为 'new@example.com'

删除文档

使用 Mongoose 可以很方便地删除文档。可以使用 deleteOne() 方法删除单个文档,或者使用 deleteMany() 方法删除多个文档。

以下是一个删除单个文档的例子:

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

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

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

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

上面的代码中,User.deleteOne() 方法接受一个参数 { name: 'John' },这将在数据库中查找 name 等于 'John' 的文档并删除它。

总结

Mongoose 是一个 MongoDB 对象模型工具,它提供了对 MongoDB 数据库进行 CRUD 操作的接口。在 Node.js 开发环境中,使用 Mongoose 可以更加方便地进行数据库的操作。本文介绍了 Mongoose 中文 API 文档,包括了连接数据库、创建 MongoDB Schema、创建 Model、创建文档、查询文档、更新文档和删除文档等方面的内容。希望本文能够帮助读者更好地了解 Mongoose 的各种接口以及如何使用它们。

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

纠错
反馈