Другими словами, есть ли способ перемотать его в начало?Можно ли повторить курсор mongo дважды?
EDIT
Я использую Монго оболочки и PyMongo.
Другими словами, есть ли способ перемотать его в начало?Можно ли повторить курсор mongo дважды?
EDIT
Я использую Монго оболочки и PyMongo.
Ruby API имеет метод rewind!
, который делает именно то, что вы хотите.
Python API также имеет метод cursor.rewind()
.
PHP API также имеет метод cursor.rewind()
.
Однако ни Java, ни C++ API не имеют метода перемотки. Все можно найти по номеру official API page.
Курсор в pymongo имеет метод .rewind()
, вы можете обратиться к sample code from previous question with answer that apply.
Native Монго оболочки апи, однако, не дает такой метод, см method help()
on DBQuery object prototype.:
> db.collection.find().help()
find() modifiers
.sort({...})
.limit(n)
.skip(n)
.count() - total # of objects matching query, ignores skip,limit
.size() - total # of objects cursor would return, honors skip,limit
.explain([verbose])
.hint(...)
.showDiskLoc() - adds a $diskLoc field to each returned object
Cursor methods
.forEach(func)
.map(func)
.hasNext()
.next()
Вы можете использовать cursor.reset();
Для PHP: $cursor->reset();
затем запустить ваш foreach($cursorData as $data)
в любое время после сброса.
Полезно знать, но я не использую Ruby. – mark
@mark: добавлена ссылка на python api, которая перемотала. – brice
Я не знаю ни одного из этих двух API-интерфейсов, но мне интересно, являются ли они обоюдными трюками-драйверами. Это что-то, что поддерживается MongoDB изначально –