Я использую Mongous в проекте Node для управления базой данных MongoDB, обязательно без схемы, имеющей около 6000 документов.Моя цель - извлечь все документы из коллекции и обработать каждый из них синхронно.
const mongous = require('mongous').Mongous;
getDocuments()
.then((documents) => processDocuments(documents));
function getDocuments() {
return new Promise((resolve, reject) => {
mongous('myDatabase.someCollection').find({}, reply => {
console.log(`Returning ${reply.numberReturned} documents`);
resolve(reply);
});
});
}
function processDocuments(documents) {
let beginning = documents.startingFrom;
let end = beginning + documents.numberReturned;
console.log(`Processing documents from ${beginning} to ${end}\n`);
// Process...
}
Однако я сталкиваюсь с проблемами при использовании функции Mongous * find
.Я ожидаю, что функция вернет все документы в одном ответе.Однако, похоже, что у него есть какой-то пакетный лимит, потому что он не возвращает более 500 документов одновременно.
Вывод:
Returning 101 documents
Processing documents from 0 to 101
Returning 500 documents
Returning 500 documents
Returning 500 documents
Returning 500 documents
Returning 500 documents
Returning 500 documents
Returning 500 documents
Returning 500 documents
Returning 500 documents
Returning 500 documents
Returning 495 documents
Почему не работает then((documents => processDocuments(documents))
для последующих разрешенных ответов?