如何通过mongoose获取大型集合,我将每个文档都返回,而不是整个集合中的大型数组?
目前我只是使用以下查询:
var query = templateData.find({});
query.exec(function (err, docs) {
// docs as array
});
这样,查询功能类似于阻止IO而不是非阻塞。有没有办法让这更无阻塞?
答案 0 :(得分:8)
好吧,因为我在发布此问题之后再看了一下mongoose文档,我完成了stream()
函数,它完全填充了非阻塞操作。
责备我,但我认为在mongoose文档中可能会提到更具攻击性: http://mongoosejs.com/docs/api.html#query_Query-stream
var query = templateData.find({}).stream();
query.on('data', function (doc) {
// do something with the mongoose document
}).on('error', function (err) {
// handle the error
}).on('close', function () {
// the stream is closed
});
答案 1 :(得分:0)
看起来新标准可能是cursors。