MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie bekomme ich die letzten N Datensätze in Mongodb?

Wenn ich Ihre Frage verstehe, müssen Sie in aufsteigender Reihenfolge sortieren.

Angenommen, Sie haben ein ID- oder Datumsfeld namens "x", würden Sie ...

tun

.sort()

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

Die 1 sortiert aufsteigend (vom ältesten zum neuesten) und -1 sortiert absteigend (vom neusten zum ältesten.)

Wenn Sie die automatisch erstellte _id verwenden Feld, in das ein Datum eingebettet ist ... also können Sie es verwenden, um bis ...

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

Dadurch werden alle Ihre Dokumente vom ältesten zum neuesten sortiert zurückgegeben.

Natürliche Ordnung

Sie können auch eine oben erwähnte Natürliche Ordnung verwenden ...

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

Wieder mit 1 oder -1 je nach gewünschter Reihenfolge.

Verwenden Sie .limit()

Schließlich ist es eine gute Praxis, bei dieser Art von weit offenen Abfragen ein Limit hinzuzufügen, damit Sie entweder ...

tun können
db.foo.find().sort({_id:1}).limit(50);

oder

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