1

我正在尝试更新所有数据库文档,但是在尝试简单使用 foreach 之后,我可以看到它没有返回所有文档......

也许mongo限制了这个函数的文档数量我不知道......(我正在从robomongo shell运行这个脚本)

db.visitors.count();  // return 2219663
var count = 0;

db.visitors.find().addOption(DBQuery.Option.noTimeout).forEach(function(visitor) {
 count++;
});

print('total:' +count);  // return only 44192 or 45575 it can change...
4

2 回答 2

3

好的,我终于找到了问题,它来自 robomongo,我不知道为什么,但是当我直接在 mongo shell 中运行脚本时它可以工作..

于 2016-09-29T16:54:31.053 回答
0

如果输出值发生变化,我很确定服务器超时退出,经过一些研究后我发现 .addOptions()在 mongodb 3.2 中已弃用,尝试使用db.collection.find({}).noCursorTimeout()

于 2016-09-04T19:44:37.363 回答