Как получить полноценный результат - PullRequest
0 голосов
/ 08 мая 2020

Я новичок в mongodb. У меня есть следующий запрос, который работает, только если я ограничиваю его небольшим числом (например, ниже и small <400). Как я могу заставить оболочку выполнять запрос без ошибок и получать весь результат. Результат, вероятно, составит пару сотен тысяч или 1-2 миллиона. Было бы важно, чтобы запрос и подготовка данных происходили одновременно. </p>

function getTextNodeContent(node) {
   const textss = [];
   const jsonText = JSON.stringify(node, (key, value) => {
       if (key === "text" && typeof value === "string") {
           textss.push(value);
       }
       return value;
   });
   return textss.join("\n");
}
function removeHtml(html) {
   if (!html || typeof html !== "string") {
       return "";
   }
   return html.replace(/<[^>]+>/g, "");
}
db.getCollection('emails').find({$or:[{
   "createdAt": {
       "$gte" : ISODate("2019-12-01T00:00:00Z"),
       "$lt": ISODate("2020-01-01T00:00:00Z")
   }},
   {"updatedAt": {
       "$gte" : ISODate("2019-12-01T00:00:00Z"),
       "$lt": ISODate("2020-01-01T00:00:00Z")
   }}]
})
.**limit(3)**
.forEach(mail => {
   print(`===== Email "${mail.title}" =====`);
   print(`===== CA "${mail.createdAt}", UA "${mail.updatedAt}" =====`);
   print(`============ Content ==============`);
   const content = removeHtml(getTextNodeContent(mail.body.content.root));
   print(content);
   print(`=== End of the email content "${mail.title}" ===`);
});
...