Is it possible to iterate a mongo cursor twice? Is it possible to iterate a mongo cursor twice? mongodb mongodb

Is it possible to iterate a mongo cursor twice?


The Ruby API has the rewind! method that does exactly what you want.

The Python API also has the cursor.rewind() method.

The PHP API also has the cursor.rewind() method.

However, neither the Java or C++ APIs have the rewind method. All can be found from the official API page.


Cursor in pymongo has .rewind() method, you can refer to sample code from previous question with answer that apply.

Native mongo shell api, however, doesn't provide such method, see 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 objectCursor methods        .forEach( func )        .map( func )        .hasNext()        .next()


You can use cursor.reset();

For PHP : $cursor->reset();

then run your foreach($cursorData as $data) any time after resetting.