sql >> Database >  >> NoSQL >> MongoDB

Hoe de laatste N-records in Mongodb te krijgen?

Als ik uw vraag begrijp, moet u in oplopende volgorde sorteren.

Ervan uitgaande dat je een id- of datumveld met de naam "x" hebt, zou je doen ...

.sort()

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

De 1 sorteert oplopend (van oud naar nieuw) en -1 sorteert aflopend (van nieuwste naar oudste.)

Als u de automatisch gemaakte _id . gebruikt veld het heeft een datum erin ingebed ... dus je kunt dat gebruiken om te bestellen voor ...

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

Hiermee worden al uw documenten teruggezet, gesorteerd van oud naar nieuw.

Natuurlijke Orde

U kunt ook een hierboven genoemde natuurlijke volgorde gebruiken ...

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

Nogmaals, gebruik 1 of -1 afhankelijk van de gewenste bestelling.

Gebruik .limit()

Ten slotte is het een goede gewoonte om een ​​limiet toe te voegen bij dit soort wijd open zoekopdrachten, zodat u ofwel ...

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

of

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


  1. Azure Redis cache - meerdere fouten TimeoutException:time-out bij het uitvoeren van GET {key}

  2. Hoe een base64-afbeelding in reactie te tonen?

  3. Query IDE voor MongoDB?

  4. MongoDB Single Document-limiet is 16 MB