Mongoose 中的文档保存和更新

阅读时长 4 分钟读完

Mongoose 是一个为 Node.js 设计的 MongoDB 数据库工具,使用 Mongoose 可以更方便地操作 MongoDB 数据库。在使用 Mongoose 进行开发时,我们经常需要对文档进行保存和更新操作,因此掌握 Mongoose 中文档保存和更新的方法是非常重要的。

保存文档

在 Mongoose 中,我们可以使用 save() 方法来保存文档。save() 方法是一个异步方法,其语法如下:

其中 doc 表示要保存的文档对象,callback 是保存成功后的回调函数。下面是一个保存文档的示例代码:

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

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

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

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

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

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

--------------- -- -
  -- ----- -
    -----------------
  - ---- -
    ---------------------
  -
---
展开代码

在上面的代码中,我们首先使用 mongoose.connect() 方法连接到 test 数据库,然后定义了一个名为 User 的模型,接着创建了一个名为 user 的文档对象,并调用其 save() 方法进行保存。如果保存成功,则会输出保存成功的信息,否则会输出保存失败的错误信息。

更新文档

在 Mongoose 中,我们可以使用 update() 或者 findOneAndUpdate() 方法来更新文档。其中 update() 可以同时更新一批文档,而 findOneAndUpdate() 用于更新第一个匹配的文档。这两个方法的语法如下:

其中 conditions 表示更新条件,update 表示要更新的字段,options 表示更新选项,callback 表示更新成功后的回调函数。下面是一个更新文档的示例代码:

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

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

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

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

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

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

----------------------- ---- -- -- - ----- ---- -- - ---- ---- -- ----- ---- -- -
  -- ----- -
    -----------------
  - ---- -
    ---------------------- -----
  -
---
展开代码

在上面的代码中,我们首先使用 mongoose.connect() 方法连接到 test 数据库,然后定义了一个名为 User 的模型。接着使用 update() 方法将名字为“张三”的文档的年龄更新为 20。如果更新成功,则会输出更新的文档数量。

然后使用 findOneAndUpdate() 方法将年龄为 20 的文档的名字更新为“李四”。因为我们设置了 options 中的 new 为 true,所以更新后的文档会被返回,并被输出到控制台。

小结

本文介绍了在 Mongoose 中如何保存和更新文档,并给出了相应的示例代码。掌握这些基本操作后,我们可以更加方便地使用 Mongoose 进行开发。当然,Mongoose 还有很多高级用法和技巧,需要我们进一步深入学习和掌握。

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

纠错
反馈

纠错反馈