En otras palabras, ¿hay alguna manera de rebobinarlo desde el principio?¿Es posible iterar un cursor mongo dos veces?
EDITAR
estoy usando consola mongo y pymongo.
En otras palabras, ¿hay alguna manera de rebobinarlo desde el principio?¿Es posible iterar un cursor mongo dos veces?
EDITAR
estoy usando consola mongo y pymongo.
El Ruby API tiene el método rewind!
que hace exactamente lo que usted desea.
El Python API también tiene el método cursor.rewind()
.
El PHP API también tiene el método cursor.rewind()
.
Sin embargo, ni las API de Java ni las de C++ tienen el método de rebobinado. Todo se puede encontrar en el official API page.
Cursor en pymongo tiene .rewind()
método, puede consultar sample code from previous question with answer that apply.
consola mongo nativo API, sin embargo, no proporciona tal método, ver 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()
Usted puede utilizar cursor.reset();
Para PHP: $cursor->reset();
continuación, ejecute su foreach($cursorData as $data)
cualquier momento después de reiniciar
Es bueno saberlo, pero no estoy usando Ruby. – mark
@mark: se agregó un enlace a la API de python que se ha rebobinado. – brice
No conozco ninguna de esas dos API, pero me pregunto si ambas son solo trucos para el controlador: esto es algo que es compatible con MongoDB de forma nativa –