如何解决遍历mongodb聚合-更好的方法是什么?
我试图在一个对象数组上运行多个聚合,然后完成后,触发返回next()
代码如下:
},(req,res,next) => {
//Grab the average price for each product
for(let i=0; i<res.locals.masterProductArray.length; i++){
Product.aggregate([
{
$match: {
item_oid: mongoose.Types.ObjectId(res.locals.masterProductArray[i].item_oid)
},},{
$group: {
"_id": "$item_oid","Prices": { $avg: "$price" },"Units": { $sum: "$units" }
}
}
],(err,doc) => {
//Handle empty results
if(!doc[0]){
res.locals.liveProducts.push({"_id":res.locals.masterProductArray[i].item_oid,"Prices":0,})
}
if(doc[0]){
res.locals.liveProducts.push(doc[0])
}
if(res.locals.masterPhaseArray.length == i+1){
return next()
}
})
}
},next) => {
问题:有时return next()
触发得太早了,在完成之前转到下一个阶段...我知道像这样循环播放是个坏主意,如果-声明是个坏主意,但我不知道该怎么办。
有没有更好的方法来做这种模式?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。