У меня есть база данных mongoDB, и я хочу иметь возможность извлекать миллионы документов одновременно, без сбоев, избегая ошибок курсоров.Я хочу отправить данные через http, используя экспресс (nodeJS).В моей коллекции тысячи и тысячи документов, и у каждого есть поле, содержащее тысячи документов меньшего размера.Текущий размер моей коллекции составляет 500 МБ.Знаете ли вы лучшие практики для этого случая больших данных?Должен ли я реализовать решение на основе лимита / пропуска?Если да, не могли бы вы предоставить пример кода?
Я уже пробовал потоковую передачу документов, которая кажется более надежной, но я все еще сталкиваюсь с той же проблемой с курсором.(Курсор не найден)
app.get("/api/:collection", (req, res) => {
const filter = JSON.parse(req.query["filter"] || "{}");
const projection = JSON.parse(req.query["projection"] || "{}");
const sort = JSON.parse(req.query["sort"] || "{}");
db.collection(req.params.collection).find(filter)
.project(projection).sort(sort)
.stream({ transform: JSON.stringify })
.addCursorFlag("noCursorTimeout", true)
.pipe(res);
});