Docs Menu
Docs Home
/ /

Especifica los documentos a devolver

En esta guía, puedes aprender a especificar qué documentos devolver de una operación de lectura utilizando los siguientes métodos:

  • limit(): Especifica el número máximo de documentos que se devolverán de una consulta.

  • sort(): Especifica el orden de clasificación de los documentos devueltos.

  • skip(): Especifica la cantidad de documentos que se deben omitir antes de devolver los resultados de la consulta.

Los ejemplos de esta guía utilizan la colección sample_restaurants.restaurants de Conjuntos de datos de muestra de Atlas. Para aprender a crear un clúster gratuito de MongoDB Atlas y cargar los conjuntos de datos de muestra, consulte Tutorial paraempezar a usar PyMongo.

Para especificar el número máximo de documentos devueltos de una operación de lectura, llame al método limit().

El siguiente ejemplo busca todos los restaurantes cuyo valor de campo cuisine es "Italian" y limita los resultados a 5 documentos. Seleccione el Synchronous o pestaña Asynchronous para ver el código correspondiente:

results = restaurants.find({ "cuisine" : "Italian"}).limit(5)
for restaurant in results:
print(restaurant["name"])
Isle Of Capri Resturant Italian
Arturo'S Italian
Patsy'S Italian Restaurant Italian
Piccola Venezia Italian
Roadhouse Restaurant Italian
results = restaurants.find({ "cuisine" : "Italian"}).limit(5)
async for restaurant in results:
print(restaurant["name"])
Isle Of Capri Resturant Italian
Arturo'S Italian
Patsy'S Italian Restaurant Italian
Piccola Venezia Italian
Roadhouse Restaurant Italian

También puede limitar el número de documentos devueltos especificando el parámetro limit en su método find(). Seleccione la pestaña Synchronous o Asynchronous para ver el código correspondiente:

results = restaurants.find({ "cuisine" : "Italian"}, limit=5)
for restaurant in results:
print(restaurant["name"])
Isle Of Capri Resturant Italian
Arturo'S Italian
Patsy'S Italian Restaurant Italian
Piccola Venezia Italian
Roadhouse Restaurant Italian
results = restaurants.find({ "cuisine" : "Italian"}, limit=5)
async for restaurant in results:
print(restaurant["name"])
Isle Of Capri Resturant Italian
Arturo'S Italian
Patsy'S Italian Restaurant Italian
Piccola Venezia Italian
Roadhouse Restaurant Italian

Tip

Los ejemplos anteriores devuelven los primeros cinco documentos devueltos por la consulta, sin ningún orden en particular. La siguiente sección describe cómo devolver los documentos en un orden de clasificación específico.

Para devolver documentos en un orden determinado, llama al método sort(). El método sort() toma dos parámetros: el campo por el que ordenar los resultados y una dirección de ordenación. Para especificar la dirección de ordenamiento, especifica pymongo.ASCENDING o pymongo.DESCENDING. ASCENDING ordena los valores de menor a mayor y DESCENDING los ordena de mayor a menor. Si no especificas ninguna dirección, el método ordena por defecto de forma ascendente.

El siguiente ejemplo devuelve todos los documentos con el valor cuisine de "Italian", ordenados ascendentemente. Seleccione la pestaña Synchronous o Asynchronous para ver el código correspondiente:

results = restaurants.find({ "cuisine" : "Italian"}).sort("name", pymongo.ASCENDING)
for restaurant in results:
print(restaurant["name"])
(Lewis Drug Store) Locanda Vini E Olii
101 Restaurant And Bar
44 Sw Ristorante & Bar
900 Park
A Voce
...
Zucchero E Pomodori
results = restaurants.find({ "cuisine" : "Italian"}).sort("name", pymongo.ASCENDING)
async for restaurant in results:
print(restaurant["name"])
(Lewis Drug Store) Locanda Vini E Olii
101 Restaurant And Bar
44 Sw Ristorante & Bar
900 Park
A Voce
...
Zucchero E Pomodori

También puede ordenar documentos especificando el parámetro sort en su método find(). El siguiente ejemplo especifica el parámetro sort para devolver los resultados en el mismo orden que el ejemplo anterior. Seleccione la pestaña Synchronous o Asynchronous para ver el código correspondiente:

results = restaurants.find({ "cuisine" : "Italian"}, sort={"name": pymongo.ASCENDING} )
for restaurant in results:
print(restaurant["name"])
(Lewis Drug Store) Locanda Vini E Olii
101 Restaurant And Bar
44 Sw Ristorante & Bar
900 Park
A Voce
...
Zucchero E Pomodori
results = restaurants.find({ "cuisine" : "Italian"}, sort={"name": pymongo.ASCENDING} )
async for restaurant in results:
print(restaurant["name"])
(Lewis Drug Store) Locanda Vini E Olii
101 Restaurant And Bar
44 Sw Ristorante & Bar
900 Park
A Voce
...
Zucchero E Pomodori

Para omitir una cantidad especificada de documentos antes de devolver los resultados de tu query, llama al método skip() y pasa la cantidad de documentos a omitir. El método skip() ignora la cantidad especificada de documentos en los resultados de tu query y devuelve el resto.

El siguiente ejemplo devuelve todos los documentos cuyo valor de campo borough es "Manhattan" y omite los primeros 10 documentos. Seleccione la pestaña Synchronous o Asynchronous para ver el código correspondiente:

results = restaurants.find({ "borough" : "Manhattan"}, skip=10)
for restaurant in results:
print(restaurant["name"])
Dorrian'S Red Hand Restaurant
The Princeton Club
Moran'S Chelsea
La Parisienne Diner
Jimmy'S Corner
...
results = restaurants.find({ "borough" : "Manhattan"}, skip=10)
async for restaurant in results:
print(restaurant["name"])
Dorrian'S Red Hand Restaurant
The Princeton Club
Moran'S Chelsea
La Parisienne Diner
Jimmy'S Corner
...

También puede omitir los documentos devueltos utilizando el parámetro skip del método find(). El siguiente ejemplo especifica la misma omisión que el ejemplo anterior. Seleccione la pestaña Synchronous o Asynchronous para ver el código correspondiente:

results = restaurants.find({ "borough" : "Manhattan"}, skip=10)
for restaurant in results:
print(restaurant["name"])
Dorrian'S Red Hand Restaurant
The Princeton Club
Moran'S Chelsea
La Parisienne Diner
Jimmy'S Corner
...
results = restaurants.find({ "borough" : "Manhattan"}, skip=10)
async for restaurant in results:
print(restaurant["name"])
Dorrian'S Red Hand Restaurant
The Princeton Club
Moran'S Chelsea
La Parisienne Diner
Jimmy'S Corner
...

Puede combinar los métodos limit(), sort() y skip() en una sola operación. Esto le permite establecer un número máximo de documentos ordenados para devolver, omitiendo un número específico de documentos antes de devolverlos.

El siguiente ejemplo devuelve documentos con el valor cuisine de "Italian". Los resultados se ordenan alfabéticamente, omitiendo los primeros 10 documentos. Seleccione la pestaña Synchronous o Asynchronous para ver el código correspondiente:

results = restaurants.find({ "cuisine" : "Italian"}) \
.sort("name", pymongo.ASCENDING) \
.limit(5) \
.skip(10)
for restaurant in results:
print(restaurant["name"])
Acqua
Acqua Restaurant
Acqua Santa
Acquista Trattoria
Acquolina Catering
results = restaurants.find({ "cuisine" : "Italian"}) \
.sort("name", pymongo.ASCENDING) \
.limit(5) \
.skip(10)
async for restaurant in results:
print(restaurant["name"])
Acqua
Acqua Restaurant
Acqua Santa
Acquista Trattoria
Acquolina Catering

Nota

El orden en que se llaman estos métodos no modifica los documentos devueltos. El controlador reordena automáticamente las llamadas para realizar primero las operaciones de ordenación y omisión, y después la operación de límite.

También puede limitar, ordenar y omitir resultados especificándolos como parámetros en el método find(). El siguiente ejemplo especifica la misma consulta que el ejemplo anterior. Seleccione la pestaña Synchronous o Asynchronous para ver el código correspondiente:

results = restaurants.find({ "cuisine" : "Italian"}, limit=5, sort={"name": pymongo.ASCENDING}, skip=10)
for restaurant in results:
print(restaurant["name"])
Acqua
Acqua Restaurant
Acqua Santa
Acquista Trattoria
Acquolina Catering
results = restaurants.find({ "cuisine" : "Italian"}, limit=5, sort={"name": pymongo.ASCENDING}, skip=10)
async for restaurant in results:
print(restaurant["name"])
Acqua
Acqua Restaurant
Acqua Santa
Acquista Trattoria
Acquolina Catering

Para obtener más información sobre cómo especificar una consulta, consulte Especificar una consulta.

Para más información sobre cómo recuperar documentos, visita Buscar documentos.

Para obtener más información sobre cualquiera de los métodos o tipos discutidos en esta guía, consultar la siguiente documentación de la API:

Volver

Buscar documentos

En esta página