Mongo: Find limitando registros e ordenação sort
Muitas vezes desejamos selecionar um número específico de registros, imaginemos o seguinte caso, tenho uma loja e quero lançar um desconto promocional para o funcionário que tem o melhor aproveitamento em vendas. Esse aproveitamento é um número de 0 a 10 que é lançado baseado na quantidade de atendimentos, vendas e elogios por parte dos clientes.
Poderíamos executar este comando:
db.funcionarios.findOne({
aproveitamento : { $gt : 8}
})
O findOne retorna o primeiro valor encontrado, no caso seria o primeiro funcionário que tenha aproveitamento maior que 8.
Portanto talvez fosse interessante partir para outra opção. Como listar os funcionários ordenando pelo aproveitamento. Para isso usamos o sort.
db.funcionarios.find().sort({"aproveitamento" : 1})
Com este comando estamos ordenando por ordem crescente, caso queira que seja por ordem decrescente é só alterar o segundo parâmetro para -1.
db.funcionarios.find().sort({"aproveitamento" : -1})
Tendo ordenado podemos limitar a quantos registros desejamos. Imagine que quero lançar aquele desconto para os 5 funcionários com aproveitamento mais alto. O limit tem esta função, nele se pode colocar o número de registros desejados.
db.funcionarios.find().sort({"aproveitamento" : -1}).limit(5)
0 comentários:
Postar um comentário