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

Mongo DB:Holen Sie sich alle Dokumente, die nach dem letzten bekannten eingefügt wurden

Da die ObjectId enthält standardmäßig einen inc und einen timestamp ( http://www.mongodb.org/display/DOCS/ Objekt+IDs#ObjektIDs-BSONObjektIDSpezifikation ) können Sie tatsächlich die ObjectId verwenden um die Einfügezeit (ungefähr) zu verstehen über:

db.col.find({_id: {$gt: {ObjectId("50911c4709913b2c643f1216")}}});

Jedoch die ObjectId kann nicht immer sehr zuverlässig sein, insbesondere wenn Sie in Ihrer App die ObjectId erstellen eine Weile vor dem Einfügen und tatsächlich zeigt ein Datensatz, von dem Sie wissen, dass er später erstellt wurde, tatsächlich (aufgrund seiner _id ) wie früher.

Für Einfügungen in bestimmten Szenarien, in denen Sie der ObjectId nicht vertrauen können für den Einfügungstimer können Sie ein ts hinzufügen Feld eines BSON-Datumstyps (ISODate ) und reichen Sie darauf ein, indem Sie zwei Abfragen verwenden, eine, um die Zeit des Originaldokuments abzurufen, und eine weitere, um alle Dokumente danach abzurufen.

Ich persönlich bevorzuge einfach die zweite Methode der Verwendung eines BSON-Datumstyps, da sie zuverlässiger und flexibler ist.