我正在尝试仅使用2个文档检索有限游标,但如果我使用limit(),则我的变量始终为空。
有人能解释所显示的行为吗?我只是不确定我做错了什么。
> myCursor = db.raw.incomingdata.find({'dat_type': 'foo'}, {'_id': 1}).sort({'_id' : 0}).limit(2);
{ "_id" : ObjectId("51a8b24d02292b2fb3000001") }
{ "_id" : ObjectId("519fd10a02292b0ede000002") }
> myCursor
>
注意'myCursor'什么都不返回,当我预计它有2个对象时。
> myCursor2 = db.raw.incomingdata.find({'dat_type': 'foo'}, {'_id': 1}).sort({'_id' : 0});
{ "_id" : ObjectId("519fd10a02292b0ede000002") }
{ "_id" : ObjectId("519fd10602292b0ede000001") }
{ "_id" : ObjectId("519fcc3402292b6e0e000002") }
{ "_id" : ObjectId("519fcc3002292b6e0e000001") }
{ "_id" : ObjectId("519fca5802292b60d8000001") }
{ "_id" : ObjectId("519e81dd02292b6f50000002") }
{ "_id" : ObjectId("519e81d902292b6f50000001") }
{ "_id" : ObjectId("519e800e02292b66aa000001") }
{ "_id" : ObjectId("519e7b1a02292b4851000001") }
(etc., etc.)
Type "it" for more
> myCursor2
{ "_id" : ObjectId("519fd10a02292b0ede000002") }
{ "_id" : ObjectId("519fd10602292b0ede000001") }
{ "_id" : ObjectId("519fcc3402292b6e0e000002") }
{ "_id" : ObjectId("519fcc3002292b6e0e000001") }
{ "_id" : ObjectId("519fca5802292b60d8000001") }
{ "_id" : ObjectId("519e81dd02292b6f50000002") }
{ "_id" : ObjectId("519e81d902292b6f50000001") }
{ "_id" : ObjectId("519e800e02292b66aa000001") }
{ "_id" : ObjectId("519e7b1a02292b4851000001") }
(etc., etc.)
如何保留第一次通话中的数据,就像第二次通话一样?
答案 0 :(得分:1)
这是因为你已经“执行”了你的光标 - 而且已经完成了。
尝试添加
var cursor = ...
现在你会看到文件 - 但只有一次!