0

ドキュメントが 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.) 

2 番目の呼び出しのように、最初の呼び出しのデータを維持するにはどうすればよいですか?

4

1 に答える 1

1

これは、すでにカーソルを「実行」しているためです。

追加してみる

var cursor = ...

これでドキュメントが表示されますが、一度だけです。

于 2013-06-03T23:57:09.500 に答える