sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur får man de sista N-posterna i mongodb?

Om jag förstår din fråga måste du sortera i stigande ordning.

Om du antar att du har något id- eller datumfält som heter "x" skulle du göra ...

.sort()

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

1 kommer att sortera stigande (äldsta till nyaste) och -1 kommer att sortera fallande (nyast till äldst.)

Om du använder det automatiskt skapade _id fältet har ett datum inbäddat i det ... så du kan använda det för att beställa senast ...

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

Det kommer att returnera alla dina dokument sorterade från äldsta till nyaste.

Naturlig ordning

Du kan också använda en naturlig ordning som nämns ovan ...

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

Återigen, med 1 eller -1 beroende på vilken ordning du vill ha.

Använd .limit()

Slutligen är det bra att lägga till en gräns när du gör den här typen av vidöppen sökning så att du kan göra antingen ...

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

eller

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


  1. Hur kan jag hitta storleken på ett redis-ämne (underuppsättning av nycklar)?

  2. Redis py:när ska man använda anslutningspoolen?

  3. Sök i MongoDB i en array och sortera efter antal matchningar

  4. MongoDB - Hur är det med decimaltyp av värde?