sql >> Databáze >  >> NoSQL >> MongoDB

Jak získat posledních N záznamů v mongodb?

Pokud rozumím vaší otázce, musíte seřadit vzestupně.

Za předpokladu, že máte nějaké pole id nebo datum nazvané "x", udělali byste ...

.sort()

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

1 seřadí vzestupně (od nejstarších po nejnovější) a -1 seřadí sestupně (od nejnovějšího po nejstarší.)

Pokud používáte automaticky vytvořené _id má v sobě vložené datum ... takže jej můžete použít k objednání do ...

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

Tím se vrátí všechny vaše dokumenty seřazené od nejstarších po nejnovější.

Přirozený řád

Můžete také použít výše zmíněný přirozený řád ...

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

Opět pomocí 1 nebo -1 v závislosti na požadovaném pořadí.

Použijte .limit()

Nakonec je dobrým zvykem přidat limit při provádění tohoto druhu široce otevřeného dotazu, abyste mohli provést buď ...

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

nebo

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


  1. Jak zaznamenat dotazy provedené Spring Data MongoDB?

  2. Je možné mít Linux VFS cache se souborovým systémem FUSE?

  3. Aktualizujte pole MongoDB pomocí hodnoty jiného pole

  4. Spring Data MongoDB:Projekce a agregace