【发布时间】:2018-12-20 08:51:15
【问题描述】:
我有一个 mongoDB 数据库,我希望能够一次获取数百万个文档,而不会崩溃,避免游标错误。 我想使用express(nodeJS)通过http发送数据。 我的收藏有成千上万的文档,每个文档都有一个包含数千个较小文档的字段。 我的收藏的当前大小是 500MB。 你知道这个大数据案例的最佳实践吗?我应该实施基于限制/跳过的解决方案吗?如果可以,能否提供代码示例?
我已经尝试过文档流,这似乎更可靠,但我仍然遇到同样的光标问题。 (未找到光标)
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);
});
【问题讨论】:
标签: javascript mongodb express