sql >> Database teknologi >  >> NoSQL >> MongoDB

Mongo DB:Få alle dokumenter indsat efter det sidst kendte

Siden ObjectId indeholder som standard en inc og et timestamp ( http://www.mongodb.org/display/DOCS/ Object+IDs#ObjectIDs-BSONObjectIDSpecification ) kan du faktisk bruge ObjectId at forstå indsættelsestid (omtrent) via:

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

Men ObjectId kan ikke altid være ekstremt pålidelig, især hvis du i din app opretter ObjectId et stykke tid før indsættelse og faktisk en post, som du ved blev oprettet senere, faktisk vises (på grund af dens _id ) som tidligere.

Til indsættelser i visse scenarier, hvor du ikke kan stole på ObjectId for indsættelsestimer kan du tilføje en ts felt af en BSON-datotype (ISODate ) og rækkevidde på det ved hjælp af to forespørgsler, en for at få de originale dokumenter tid og derefter en anden for at få alle dokumenter efter.

Jeg foretrækker personligt bare at gå efter den anden metode til at bruge en BSON-datotype, da den er mere pålidelig og fleksibel.



  1. Hvordan forespørger man mongodb fra groovy/grails?

  2. MongoDB $setIsSubset

  3. Kan jeg udføre en rå MongoDB-forespørgsel i node-mongodb-native driver?

  4. Projektionsmulighed for at returnere længde/størrelse af felt