2016-09-04 49 views
1

我試圖更新所有數據庫中的文檔,但儘量簡單使用的foreach之後我可以看到,它不是返回的所有文件...MongoDB的原生的foreach不會返回所有文件

也許蒙戈數量限制文件這個功能我不知道...... (我正在從robomongo外殼該腳本)

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... 
+0

您的集合是分片? – DAXaholic

+0

沒有簡單的收集,這是在MAB,但我用我的本地機器mongodump來檢查它是不是由於他們,而且在本地出現問題... – sav931

+0

如果你嘗試'db.visitors.find ().count()'? –

回答

0

如果輸出值發生變化,我敢肯定,在超時的服務器退出後,做一些研究我發現.addOptions()在mongodb 3.2中爲deprecated,嘗試使用db.collection.find({}).noCursorTimeout()

+0

我試過了,但它是同樣的問題......非常奇怪.. – sav931

3

OK我終於發現了問題,它是從robomongo,我不知道爲什麼,但是當我直接在mongo shell中運行它的腳本時它的工作..