猫鼬:流式聚合 JSON 数据
Mongoose: Streaming Aggregated JSON Data
如标题所示,我正在为我的网络应用程序使用 Express
。
目前,我的代码如下所示:
API 控制器
var mongoose = require('mongoose');
var Doc = mongoose.model('Document');
var sendJSONresponse = function(res, status, content) {
res.status(status);
res.json(content);
};
// "/api/documents"
module.exports.listAllDocuments = function(req, res) {
var stream = Doc.find().stream();
stream.on('data', function (chunk) {
res.write(JSON.stringify(chunk));
}).on('error', function (err) {
console.log('Error: ' + err);
}).on('end', function () {
res.end();
});
};
我不想使用 var stream = Doc.find().stream();
,而是希望使用 aggregate()
。
像find()
一样,aggregate()
应该是一个可读流,对吧?
然而,当我简单地将 find()
替换为 aggregate()
调用时,它似乎不起作用。
它说类型错误:Object #<Aggregate> has no method 'stream'
。什么是 流式聚合 JSON 数据 的替代方案?
如标题所示,我正在为我的网络应用程序使用 Express
。
目前,我的代码如下所示:
API 控制器
var mongoose = require('mongoose');
var Doc = mongoose.model('Document');
var sendJSONresponse = function(res, status, content) {
res.status(status);
res.json(content);
};
// "/api/documents"
module.exports.listAllDocuments = function(req, res) {
var stream = Doc.find().stream();
stream.on('data', function (chunk) {
res.write(JSON.stringify(chunk));
}).on('error', function (err) {
console.log('Error: ' + err);
}).on('end', function () {
res.end();
});
};
我不想使用 var stream = Doc.find().stream();
,而是希望使用 aggregate()
。
像find()
一样,aggregate()
应该是一个可读流,对吧?
然而,当我简单地将 find()
替换为 aggregate()
调用时,它似乎不起作用。
它说类型错误:Object #<Aggregate> has no method 'stream'
。什么是 流式聚合 JSON 数据 的替代方案?