MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Come ottenere gli ultimi N record in mongodb?

Se ho capito la tua domanda, devi ordinarla in ordine crescente.

Supponendo che tu abbia un campo ID o data chiamato "x" lo faresti ...

.sort()

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

Il 1 ordinerà in ordine crescente (dal più vecchio al più recente) e -1 ordinerà in ordine decrescente (dal più recente al meno recente.)

Se utilizzi il _id creato automaticamente campo ha una data incorporata in esso ... quindi puoi usarla per ordinare entro ...

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

Ciò restituirà tutti i tuoi documenti ordinati dal meno recente al più recente.

Ordine naturale

Puoi anche utilizzare un Ordine Naturale di cui sopra ...

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

Ancora una volta, utilizzando 1 o -1 a seconda dell'ordine che desideri.

Usa .limit()

Infine, è buona norma aggiungere un limite quando si esegue questo tipo di query ad ampia apertura in modo da poter eseguire entrambi ...

db.foo.find().sort({_id:1}).limit(50);

o

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