【发布时间】:2017-09-26 12:54:04
【问题描述】:
我正在节点中使用猫鼬。 我正在请求从远程数据库中检索项目集合。为了得到完整的报告,我需要解析一个很大的集合。
我避免接近以下事物:
model.find({}, function(err, data) {
// process the bunch of data
})
现在,我使用递归方法,在其中提供局部变量。稍后我会发回有关该过程的信息作为响应。
app.get('/process/it/',(req,res)=>{
var processed_data=[];
function resolve(procdata) {
res.json({status:"ok", items:procdata.length});
}
function handler(data, procdata, start, n) {
if(data.length <= n)
resolve(procdata);
else {
// do something with data: push into processed_data
procdata.push(whatever);
mongoose.model('model').find({}, function(err, data){
handler(data, procdata, start+n, n);
}).skip(start).limit(n);
}
}
n=0
mysize=100
// first call
mongoose.model('model').find({}, function(err, data){
handler(data, processed_data, n, mysize);
}).skip(n).limit(mysize);
})
是否有任何方法或解决方案提供任何性能优势,或者只是以更好的方式实现这一点?
任何帮助将不胜感激。
【问题讨论】:
标签: node.js mongodb mongoose promise