que - Cómo limitar la consulta de mongo en python
mongodb español (1)
Estoy tratando de recuperar datos de mongodb con python. Mi db contiene muchos datos. Así que quiero limitar los datos mientras se recupera. Lo intenté
import datetime
from pymongo import Connection
connection = Connection(''localhost'',27017)
db = connection[''MyWork'']
db_data = db.myusers.find().limit(2)
#db_data = db.myusers.find()[0:2]
print db_data
print db_data.count()
print db_data[0]
print db_data[1]
print db_data[2]
Pero estoy obteniendo más de dos documentos cuando probé arriba. Estoy usando el controlador pymongo
. Como limitar los valores.
<pymongo.cursor.Cursor object at 0x000000000267D518>
3
{u''age'': 24.0, u''_id'': ObjectId(''552b6e90aad3e2d909d5fb28''), u''place'': u''Ravipadu'', u''name'': u''Shiva''}
{u''age'': 28.0, u''_id'': ObjectId(''552b6eabaad3e2d909d5fb29''), u''place'': u''Rajahmundry'', u''name'': u''Anil''}
{u''age'': 30.0, u''_id'': ObjectId(''552b6ec1aad3e2d909d5fb2a''), u''place'': u''Manchili'', u''name'': u''Kishore''}
Como se especifica en esta pregunta , el acceso indexado ignorará el limit
. Y count()
no obedece el límite ni se omite de forma predeterminada como se explica en el manual . Puede pasar with_limit_and_skip=True
para hacer que count()
funcione con límite.
print db_data.count(with_limit_and_skip=True)
O puede iterar el cursor para ver el límite en efecto.
for data in db.myusers.find().limit(2):
print data