2012-03-26 4 views

ответ

14

Ruby API имеет метод rewind!, который делает именно то, что вы хотите.

Python API также имеет метод cursor.rewind().

PHP API также имеет метод cursor.rewind().

Однако ни Java, ни C++ API не имеют метода перемотки. Все можно найти по номеру official API page.

+0

Полезно знать, но я не использую Ruby. – mark

+0

@mark: добавлена ​​ссылка на python api, которая перемотала. – brice

+0

Я не знаю ни одного из этих двух API-интерфейсов, но мне интересно, являются ли они обоюдными трюками-драйверами. Это что-то, что поддерживается MongoDB изначально –

0

Курсор в 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() 
1

Вы можете использовать cursor.reset();

Для PHP: $cursor->reset();

затем запустить ваш foreach($cursorData as $data) в любое время после сброса.

Смежные вопросы