1

すべてのデータベース ドキュメントを更新しようとしていますが、 foreach を簡単に使用してみると、すべてのドキュメントが返されていないことがわかります...

おそらくmongoは、この関数のドキュメント数を制限しています...(私は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...
4

2 に答える 2

3

OKようやく問題が見つかりました。それはrobomongoによるものでした。理由はわかりませんが、mongoシェルでスクリプトを直接実行すると動作します..

于 2016-09-29T16:54:31.053 に答える
0

出力値が変更された場合、タイムアウトでサーバーが終了すると確信しています。いくつかの調査を行った後、mongodb 3.2 で.addOptions() が非推奨になっていることがわかりました。使用してみてください。db.collection.find({}).noCursorTimeout()

于 2016-09-04T19:44:37.363 に答える