MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Como obter os últimos N registros no mongodb?


Se entendi sua pergunta, você precisa classificar em ordem crescente.

Supondo que você tenha algum campo de id ou data chamado "x", você faria ...

.sort()

db.foo.find().sort({x:1});

O 1 classificará em ordem crescente (do mais antigo para o mais recente) e -1 classificará de forma decrescente (do mais recente para o mais antigo).

Se você usar o _id criado automaticamente campo ele tem uma data embutida nele ... então você pode usar isso para ordenar por ...
db.foo.find().sort({_id:1});

Isso retornará todos os seus documentos classificados do mais antigo para o mais recente.

Ordem Natural


Você também pode usar uma Ordem Natural mencionada acima...
db.foo.find().sort({$natural:1});

Novamente, usando 1 ou -1 dependendo do pedido que você deseja.

Usar .limit()


Por fim, é uma boa prática adicionar um limite ao fazer esse tipo de consulta aberta para que você possa fazer ...
db.foo.find().sort({_id:1}).limit(50);

ou
db.foo.find().sort({$natural:1}).limit(50);