Я пытаюсь обновить каждый документ в расширяющейся базе данных Mongo.
Мой план состоит в том, чтобы начать с самого молодого, самого последнего созданного документа и работать оттуда, один за другим запрашивая следующий самый старый документ.
Проблема в том, что мой запрос Mongoose пропускает документы, созданные за одну секунду. Я думал, что операторы больше чем / меньше будут работать с _ids, сгенерированными за одну секунду. Но хотя сейчас в базе данных 150 документов, эта функция переходит от самого молодого к самому старому документу всего за 8 циклов.
Вот мой запрос 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);