sql >> Databasteknik >  >> NoSQL >> MongoDB

Mongo DB:Få alla dokument infogade efter det senast kända

Eftersom ObjectId som standard innehåller en inc och en timestamp ( http://www.mongodb.org/display/DOCS/ Object+IDs#ObjectIDs-BSONObjectIDSpecification ) kan du faktiskt använda ObjectId för att förstå insättningstiden (ungefär) via:

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

Men ObjectId kan inte alltid vara extremt tillförlitlig, särskilt om du skapar ObjectId i din app ett tag före infogning och faktiskt en post som du vet skapades senare faktiskt visas (på grund av dess _id ) som tidigare.

För insättningar i vissa scenarier där du inte kan lita på ObjectId för insättningstimer kan du lägga till en ts fält av en BSON-datumtyp (ISODate ) och intervall på det med två frågor, en för att hämta originaldokumentens tid och sedan en annan för att få alla dokument efter.

Jag föredrar personligen att bara välja den andra metoden att använda en BSON-datumtyp eftersom den är mer pålitlig och flexibel.



  1. Inställning av vårsession på redis-server

  2. Ring Mongodb lagrad funktion från PHP7

  3. Mongodb - ta bort nollfält rekursivt?

  4. Mongodb-frågan använder inte prefix på sammansatt index med textfält