Mongoose 中使用 Lean 查询的方法

阅读时长 3 分钟读完

什么是 Mongoose?

Mongoose 是一个在 Node.js 中使用的 MongoDB 对象建模工具,它可以让 Node.js 程序员更容易地建立基于 MongoDB 的应用程序。

Lean 查询的意义

Mongoose 中的查询结果,缺省情况下是 Mongoose Documents,这意味着他们对象具有许多有意义的 MongoDB 语义化函数,像 save() 或 remove(),但是在 Modal 查询中,这些 function 可能无用。

这种情况下,我们可以使用 Lean(),它在查询方式中增加了执行者效率。它返回纯 JavaScript 查询结果数组。

如何使用 Lean 查询?

在 Mongoose 中将操作结果处理为原生JS对象时,在查询方法上调用 Lean() 方法即可。

在 above example 中,最后我们得到的结果是一个由普通对象组成的数组,没有任何 Mongoose Document 方法和属性。由此,可以消除在数据库中加载对象所必须的开销。但请注意的是,Lean 查询不能用于保存和更新模式,除非您自己创建更新语句。例如:

示例代码

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

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

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

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

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

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

在 above example 中,我们比较了一个正常的查询和一个使用 Lean 查询的查询,并打印出了两种查询的结果以及调用它们所花费的时间。

使用 Lean 查询,我们可以发现,在不牺牲查询结果的情况下,更高效地完成了查询。

结论

在 Mongoose 中使用 Lean 查询可以提高应用程序的性能,具有极高的效率,在模式查询时使用它是很好的选择。

然而,在数据更新操作中使用 Lean 查询需要注意,需要自行编写更新语句,否则可能会导致数据不一致。

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

纠错
反馈