MongoDB Consulta Sort() e Limit() com ordem por exemplos
โก Resumo Inteligente
MongoDB Os modificadores de consulta `sort()` e `limit()` controlam quantos documentos uma consulta retorna e em que ordem. O mรฉtodo `limit()` limita a quantidade de resultados, enquanto `sort()` organiza os documentos em ordem crescente ou decrescente, usando os valores 1 ou -1.

O que sรฃo modificaรงรตes de consulta?
Mongo DB fornece modificadores de consulta, como as clรกusulas 'limit' e 'Orders', para fornecer mais flexibilidade ao executar consultas. Veremos os seguintes modificadores de consulta
MongoDB Limitar resultados da consulta
Este modificador รฉ usado para limitar o nรบmero de documentos retornados no conjunto de resultados de uma consulta. O exemplo a seguir mostra como isso pode ser feito.
db.Employee.find().limit(2).forEach(printjson);
Code Explicaรงรฃo
- O cรณdigo acima usa a funรงรฃo find que retorna todos os documentos da coleรงรฃo, mas depois usa a clรกusula limit para limitar o nรบmero de documentos retornados a apenas 2.
saรญda
Se o comando for executado com sucesso, a seguinte saรญda serรก mostrada
A saรญda mostra claramente que, como existe um modificador de limite, no mรกximo apenas 2 registros sรฃo retornados como parte do conjunto de resultados com base no ObjectId em ordem crescente.
MongoDB Classificar por ordem decrescente
Pode-se especificar a ordem dos documentos a serem devolvidos com base na ordem crescente ou decrescente de qualquer chave da coleรงรฃo. O exemplo a seguir mostra como isso pode ser feito.
db.Employee.find().sort({Employeeid:-1}).forEach(printjson)
Code Explicaรงรฃo
- O cรณdigo acima usa a funรงรฃo sort que retorna todos os documentos da coleรงรฃo, mas depois usa o modificador para alterar a ordem em que os registros sรฃo retornados. Aqui o -1 indica que queremos retornar os documentos com base na ordem decrescente do ID do Funcionรกrio.
Se o comando for executado com sucesso, a seguinte saรญda serรก mostrada
saรญda
A saรญda mostra claramente os documentos sendo retornados em ordem decrescente do Employeeid.
A ordem crescente รฉ definida pelo valor 1.
MongoDB Ordenar por ordem crescente
Assim como a funรงรฃo `sort()` pode retornar documentos em ordem decrescente, ela tambรฉm pode retornรก-los em ordem crescente. A ordem crescente รฉ definida pelo valor 1 no objeto de ordenaรงรฃo. Isso organiza os documentos do menor para o maior valor, o que รฉ รบtil para listar registros do mais antigo para o mais recente ou de A a Z.
O exemplo a seguir classifica todos os documentos de funcionรกrios por ID do funcionรกrio em ordem crescente:
db.Employee.find().sort({Employeeid:1}).forEach(printjson)
Eis como a consulta funciona:
- A funรงรฃo find() recupera todos os documentos da coleรงรฃo Employee.
- sort({Employeeid:1}) ordena os resultados pelo campo Employeeid, do ID mais baixo para o mais alto.
- forEach(printjson) imprime cada documento em JSON legรญvel.
Ao executar este comando, os documentos aparecem em ordem crescente de Employeeid. A ordem crescente tambรฉm รฉ a direรงรฃo padrรฃo, portanto, deixar o valor como 1 resulta em uma ordenaรงรฃo do menor para o maior no campo escolhido. Para inverter o resultado, basta alterar o valor de 1 para -1. Vocรช tambรฉm pode usar a funรงรฃo limit() em sequรชncia para retornar apenas os primeiros registros ordenados.
MongoDB Pular() para paginaรงรฃo
O mรฉtodo skip() informa MongoDB Ignora um determinado nรบmero de documentos antes de retornar o restante. Por si sรณ, `skip()` raramente รฉ รบtil, mas combinado com `limit()`, cria paginaรงรฃo, permitindo exibir os resultados uma pรกgina por vez.
O exemplo a seguir ignora os dois primeiros funcionรกrios e retorna os dois seguintes:
db.Employee.find().skip(2).limit(2).forEach(printjson)
Para criar a navegaรงรฃo pรกgina por pรกgina, siga este padrรฃo:
- Defina o tamanho da pรกgina, por exemplo, 2 documentos por pรกgina.
- Multiplique o tamanho da pรกgina pelo nรบmero da pรกgina menos um para obter o valor de salto.
- Passe esse valor para skip() e o tamanho da pรกgina para limit().
Por exemplo, a pรกgina 1 usa skip(0).limit(2), a pรกgina 2 usa skip(2).limit(2) e a pรกgina 3 usa skip(4).limit(2). Sempre adicione tambรฉm um sort(), para que a ordem dos documentos permaneรงa estรกvel entre as pรกginas. Observe que valores de skip muito grandes podem ser lentos em coleรงรตes grandes, porque MongoDB O sistema ainda verifica e descarta os documentos ignorados; a paginaรงรฃo baseada em intervalo รฉ mais rรกpida em grande escala.
Classificar por vรกrios campos em MongoDB
MongoDB ร possรญvel classificar por mais de um campo simultaneamente. Vocรช lista os campos no objeto de classificaรงรฃo em ordem de prioridade, e MongoDB A ordenaรงรฃo รฉ feita pelo primeiro campo, depois o campo seguinte รฉ usado para desempatar, e assim por diante.
O exemplo a seguir classifica os funcionรกrios por nome em ordem crescente e, para funcionรกrios com o mesmo nome, por ID do funcionรกrio em ordem decrescente:
db.Employee.find().sort({EmployeeName:1, Employeeid:-1}).forEach(printjson)
A ordem das chaves no objeto de classificaรงรฃo รฉ importante: EmployeeName รฉ aplicado primeiro porque aparece primeiro. Essa classificaรงรฃo por mรบltiplas chaves รฉ รบtil para relatรณrios em que vocรช agrupa por um campo e, em seguida, classifica dentro de cada grupo. Para obter o melhor desempenho em coleรงรตes grandes, crie um รญndice composto que corresponda aos campos e ร s direรงรตes usadas na classificaรงรฃo.


