Mongoose findOne() vs limit(1)

编程入门 行业动态 更新时间:2024-10-04 07:25:37

<a href=https://www.elefans.com/category/jswz/34/1771443.html style=Mongoose findOne() vs limit(1)"/>

Mongoose findOne() vs limit(1)

使用 MongoDB 和 Node.js 的 Mongoose 驱动程序,我想限制我必须在 API 中重复的代码量。

而不是做这样的事情:

var limit  = req.query.limit || -1;


if(limit === 1){

Model.findOne({})...

}
else{

Model.find({})...

}

最好只是做:

var limit  = req.query.limit || -1;
Model.find({}).limit(limit);

所以我有两个问题:

(1) 使用 limit(1) 是否与 findOne() 具有相同的效果,它是一种更有效的搜索,因为查询一旦找到第一个匹配项就会返回?

(2) limit(-1) 或 limit(0) 是否对搜索没有限制?因为这将使没有重复代码成为可能。

回答如下:

limit(1) 与 findOne()

  • find 返回游标,而 findOne 返回确切的文档。
  • 使用 find() + limit() 更快,因为 findOne() 将始终读取并返回文档(如果存在)。
  • find() 只返回一个游标(或不返回),并且只在遍历游标时读取数据。
  • find() 有一个游标,因此您可以在 mongo shell 中将 explain() 与您的查询一起使用,以查看获胜计划和有关执行查询的其他详细信息

极限(-1),极限(0)

  • limit() 值为 0(即 .limit(0))等同于设置无限制。
  • 负限制类似于正限制,但在返回单批结果后关闭游标。

http://docs.mongodb/manual/reference/method/cursor.limit/

更多推荐

Mongoose findOne() vs limit(1)

本文发布于:2024-05-30 23:50:51,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1771056.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:Mongoose   findOne   limit

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!