比较Mongoose查询中的ObjectID

我正在尝试更新扩展的Mongo数据库中的每个文档。

我的计划是从最年轻,最近创build的文档开始,然后从这里开始,一个一个地查询下一个最早的文档。

问题是我的Mongoose查询正在跳过同一秒内创build的文档。 我认为大于/小于运营商将在同一秒生成_ids工作。 但是现在数据库中有150个文件,这个函数只有8个循环,从最小的文件到最老的文件。

这是我在recursion节点循环中的Mongoose查询:

function loopThroughDatabase(i, doc, sizeOfDatabase){ if (i < sizeOfDatabase) { (function(){ myMongooseCollection.model(false) .find() .where("_id") .lt(doc._id) .sort("id") .limit(1) .exec(function(err, docs) { if (err) { console.log(err); } else { updateDocAndSaveToDatabase(docs[0]); loopThroughDatabase(i + 1, docs[0], sizeOfDatabase); //recursion here } }); })(); } } loopThroughDatabase(1, youngestDoc, sizeOfDatabase); 

find错误。

在Mongoose查询中,我是通过“id”而不是“_id”

如果你阅读了MongoDB文档,你会发现它取决于创build项目的过程,因此,为了保证你所需要的东西,您需要将date戳记添加到logging,并使用它而不是_id