Dicas sobre desenvolvimento de software, gestão e tributações

Rede Social

29 de maio de 2018

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