sql >> Base de Datos >  >> NoSQL >> MongoDB

Mongo DB:obtenga todos los documentos insertados después del último conocido

Desde el ObjectId por defecto contiene un inc y una timestamp ( http://www.mongodb.org/display/DOCS/ Objeto+IDs#ObjectIDs-BSONObjectIDSpecification ) en realidad puedes usar el ObjectId para comprender el tiempo de inserción (aproximadamente) a través de:

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

Sin embargo, el ObjectId no siempre puede ser extremadamente confiable, especialmente si, en su aplicación, crea el ObjectId un momento antes de la inserción y en realidad se muestra un registro que sabe que se creó más tarde (debido a su _id ) como antes.

Para inserciones en ciertos escenarios en los que no puede confiar en el ObjectId para el temporizador de inserción puede agregar un ts campo de un tipo de fecha BSON (ISODate ) y varíe en eso usando dos consultas, una para obtener el tiempo de los documentos originales y luego otra para obtener todos los documentos después.

Personalmente, prefiero optar por el segundo método de usar un tipo de fecha BSON, ya que es más confiable y flexible.