Mongoose Model 中的 document 方法及使用技巧

阅读时长 4 分钟读完

在 Mongoose 中,Schema 定义了数据集合的结构,Model 将 Schema 编译为数据集合的构造函数,而 document 则是从 Model 构造函数创建出的实例对象,它是我们操作数据的主要对象。

在本文中,我们将重点介绍 Mongoose Model 中 document 的相关方法以及使用技巧,希望读者能够在学习中有所收获,掌握好 Mongoose 中的 document 操作。

创建 document 对象

我们可以通过 Model 的构造函数来创建 document 对象,如下所示:

在上述代码中,User 是 Mongoose Model 的构造函数,user 则是通过 User 构造函数创建出的 document 对象,其中包含 nameage 两个字段。

保存 document 对象

一旦我们创建了 document 对象,就可以通过 save 方法将其保存到数据库中,如下所示:

在上述代码中,我们使用了 save 方法将创建的 user 对象保存到数据库中。保存成功后,then 中的回调函数会被调用,否则 catch 中的回调函数会被调用。

更新 document 对象

如果我们需要更新已存在的 document 对象,我们可以使用 updateOneupdateMany 方法,如下所示:

在上述代码中,我们使用了 updateOne 方法将名字为 'John Doe' 的用户的年龄更新为 30

删除 document 对象

如果我们需要删除一个或多个 document 对象,可以使用 deleteOnedeleteMany 方法,如下所示:

在上述代码中,我们使用了 deleteOne 方法将名字为 'John Doe' 的用户从数据库中删除。

查询 document 对象

如果我们需要根据特定条件查询数据库中的 document 对象,可以使用 Mongoose 提供的查询 API,如下所示:

在上述代码中,我们使用 find 方法查询了年龄大于 18 的所有用户,并打印出查询结果。

Populating

在数据库查询时,我们经常需要查询一些关联的集合数据,这时就需要使用到 Mongoose 中的 populating 特性。下面是使用 populating 的示例:

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

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

在上述代码中,我们定义了一个 order 集合,在其中包含了关联到 userproduct 两个集合的 ObjectID。当我们需要查询 order 集合时,我们可以通过 .populate() 方法进行关联数据的查询,并通过 .exec() 方法执行当前查询。查询结果会以数组的形式返回,并会包含指定集合的数据。

总结

在 Mongoose 中,document 是操作数据的主要对象,其包含了各种 CRUD 方法以及关联查询、分组聚合等高级特性,能够满足大部分数据库操作需求。在学习 Mongoose 时,对 document 的掌握是至关重要的,希望本文能够对读者有所帮助。

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

纠错
反馈