MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Mongo DB:Obtenha todos os documentos inseridos após o último conhecido


Desde o ObjectId por padrão contém um inc e um timestamp ( http://www.mongodb.org/display/DOCS/ Object+IDs#ObjectIDs-BSONObjectIDSpecification ) você pode realmente usar o ObjectId para entender o tempo de inserção (aproximadamente) via:
db.col.find({_id: {$gt: {ObjectId("50911c4709913b2c643f1216")}}});

No entanto, o ObjectId nem sempre pode ser extremamente confiável, especialmente se, em seu aplicativo, você criar o ObjectId um pouco antes da inserção e na verdade um registro que você sabe que foi criado mais tarde realmente aparece (por causa de seu _id ) como antes.

Para inserções em determinados cenários em que você não pode confiar no ObjectId para o temporizador de inserção, você pode adicionar um ts campo de um tipo de data BSON (ISODate ) e faça isso usando duas consultas, uma para obter a hora dos documentos originais e outra para obter todos os documentos depois.

Eu pessoalmente prefiro ir para o segundo método de usar um tipo de data BSON, pois é mais confiável e flexível.