首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >FindAndUpdate前5文档

FindAndUpdate前5文档
EN

Stack Overflow用户
提问于 2018-02-15 19:16:52
回答 1查看 1.2K关注 0票数 0

我正在寻找一种在FindAndModify中使用MongoDB不超过5个文档的方法。

这是队列的集合,它将由多个工作人员处理,因此我想将其放入单个查询中。

虽然我无法控制UpdateOptions参数中的更新数量,但能否限制将在filterDefinition中找到的行数?

EN

回答 1

Stack Overflow用户

发布于 2018-02-15 20:06:33

问题1:根据文档,findAndModify()一次只能更新一个文档。这是MongoDB实现的固有限制。

问题2:使用任何类型的简单update()查询都无法更新特定数量的任意文档。您可以根据multi选项的布尔值更新一个或全部,但仅此而已。

如果您想一次更新多达5个文档,您必须首先检索这些文档,然后更新它们,或者在foreach()调用中单独更新它们。无论哪种方式,您都可以使用这样的方法:

代码语言:javascript
复制
db.collection.update(
    {_id: {$in: [ doc1._id, doc2._id, ... ]}},
    { ... },
    {multi: true}
);

否则你就会用这样的方法:

代码语言:javascript
复制
db.collection.find({ ... }).limit(5).forEach(function(doc) {
    //do something to doc
    db.collection.update({_id: doc._id}, doc);
});

无论你选择哪种方法,它都是一种解决办法。同样,这也是固有的限制。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48814707

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档