Menu Docs

Página inicial do DocsDesenvolver aplicaçõesDrivers PythonPyMongo

Especifique documentos a serem devolvidos

Nesta página

  • Visão geral
  • Dados de amostra
  • Limite
  • Sort
  • Ignorar
  • Combinar Limite, Classificar e Ignorar
  • Informações adicionais
  • Documentação da API

Neste guia, você pode aprender como especificar quais documentos retornar de uma operação de leitura usando os seguintes métodos:

  • limit(): especifica o número máximo de documentos para retornar de uma query.

  • sort(): especifica a ordem de classificação para os documentos devolvidos.

  • skip(): especifica o número de documentos a ignorar antes de retornar os resultados da query.

Os exemplos neste guia usam a collection sample_restaurants.restaurants dos conjuntos de dados de amostra do Atlas. Para saber como criar um MongoDB Atlas cluster gratuito e carregar os conjuntos de dados de amostra, consulte Introdução ao PyMongo.

Para especificar o número máximo de documentos retornados de uma operação de leitura, chame o método limit() .

O exemplo a seguir encontra todos os restaurantes que têm um cuisine valor de campo de "Italian" e limita os resultados a 5 documentos:

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

Você também pode limitar o número de documentos devolvidos especificando o parâmetro limit em seu método find() :

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

Dica

Os exemplos anteriores retornam os cinco primeiros documentos retornados pela query, sem uma ordem específica. A seção seguinte descreve como devolver os documentos em uma ordem de classificação especificada.

Para retornar documentos em uma ordem especificada, chame o método sort() . O método sort() utiliza dois parâmetros: o campo para classificar os resultados por e uma direção de classificação. Para especificar a direção de classificação, especifique pymongo.ASCENDING ou pymongo.DESCENDING. ASCENDING classifica os valores do mais baixo para o mais alto e DESCENDING os classifica do mais alto para o mais baixo. Se você não especificar nenhuma das direções, o método assumirá como padrão a classificação em ordem crescente.

O exemplo a seguir retorna todos os documentos com o valor cuisine de "Italian", classificados em ordem crescente:

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

Você também pode classificar documentos especificando o parâmetro sort em seu método find() . O exemplo seguinte especifica o parâmetro sort para retornar os resultados na mesma ordem do exemplo anterior:

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

Para ignorar um número específico de documentos antes de retornar os resultados da query, chame o método skip() e passe o número de documentos a serem ignorados. O método skip() ignora o número especificado de documentos nos resultados da query e retorna o restante.

O exemplo a seguir retorna todos os documentos que têm um valor de campo borough de "Manhattan" e ignora os primeiros 10 documentos:

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
...

Você também pode ignorar documentos devolvidos usando o parâmetro skip do método find() . O exemplo a seguir especifica o mesmo salto do exemplo anterior:

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
...

Você pode combinar os métodos limit(), sort() e skip() em uma única operação. Isso permite que você defina um número máximo de documentos classificados para retornar, ignorando um número específico de documentos antes de retornar.

O exemplo a seguir retorna documentos com o valor cuisine de "Italian". Os resultados são classificados em ordem alfabética, ignorando os primeiros 10 documentos:

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

Observação

A ordem em que você chama esses métodos não altera os documentos que são devolvidos. O driver reordena automaticamente as chamadas para executar primeiro as operações de classificação e skip e, em seguida, a operação de limite.

Você também pode limitar, classificar e ignorar resultados especificando-os como parâmetros no método find() . O exemplo a seguir especifica a mesma query do exemplo anterior:

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

Para obter mais informações sobre como especificar uma query, consulte Especificar uma query.

Para obter mais informações sobre como recuperar documentos, consulte Recuperar dados.

Para saber mais sobre qualquer um dos métodos ou tipos discutidos neste guia, consulte a seguinte documentação da API:

← Especifique campos para retornar