如果集合中的文档很少,则必须为此包含一个 batchSize() : db.items.find().batchSize(2)
通过此链接了解光标行为:http ://docs.mongodb.org/manual/core/read-operations/#cursor-behaviors
由于您使用的是排序,我确信它们不是“名称”键上的索引,或者不超过 101 个文档(或 1 MB 文档)。让我用一个例子来解释。
test:Mongo > db.runCommand({cursorInfo:1});
{ "totalOpen" : 2, "clientCursors_size" : 2, "timedOut" : 1, "ok" : 1 }
test:Mongo > var x = db.test2.find().sort({ a : -1}).batchSize(5);
test:Mongo > x.next()
test:Mongo > db.runCommand({cursorInfo:1});
{ "totalOpen" : 2, "clientCursors_size" : 2, "timedOut" : 1, "ok" : 1 }
因此,打开的游标没有变化(检查我上面粘贴的文档),因为 { a : 1 } 上缺少索引现在让我们添加索引。
test:Mongo > db.test2.ensureIndex({ a : -1 })
test:Mongo > var x = db.test2.find().sort({ a : -1}).batchSize(5);
test:Mongo > db.runCommand({cursorInfo:1});
{ "totalOpen" : 2, "clientCursors_size" : 2, "timedOut" : 1, "ok" : 1 }
test:Mongo > x.next()
test:Mongo > db.runCommand({cursorInfo:1});
{ "totalOpen" : 3, "clientCursors_size" : 3, "timedOut" : 1, "ok" : 1 }