MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Mongo DB :Obtenir tous les documents insérés après le dernier connu

Depuis le ObjectId contient par défaut un inc et un timestamp ( http://www.mongodb.org/display/DOCS/ Object+IDs#ObjectIDs-BSONObjectIDSpecification ) vous pouvez réellement utiliser le ObjectId pour comprendre le temps d'insertion (en gros) via :

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

Cependant le ObjectId ne peut pas toujours être extrêmement fiable, surtout si, dans votre application, vous créez le ObjectId un certain temps avant l'insertion et en fait un enregistrement dont vous savez qu'il a été créé plus tard s'affiche (en raison de son _id ) comme précédemment.

Pour les insertions dans certains scénarios où vous ne pouvez pas faire confiance à ObjectId pour la minuterie d'insertion, vous pouvez ajouter un ts champ de type Date BSON (ISODate ) et étendez-vous sur cela en utilisant deux requêtes, une pour obtenir l'heure des documents d'origine, puis une autre pour obtenir tous les documents après.

Personnellement, je préfère simplement opter pour la deuxième méthode d'utilisation d'un type de date BSON car il est plus fiable et flexible.