我正在尝试计算mongoDB中的文档(使用mongoose),其中记录的状态为待定,已批准和已拒绝。所以,我基本上是想得到一个结果,我可以显示每个结果并在我的视图中显示
我想将这些值保存在可以在不同位置使用的变量中,即:
const pending = .....
const approved = ....
const rejected = .....
我试图使用聚合函数并运行一个循环,该循环将我需要的所有数据都获取了,但我不知道如何将数据实际放入上述三个变量中。
Product.aggregate([
{ $group: { _id: { status: "$status" }, totalStatus: { $sum: 1 } } }
])
上面的代码给了我这个(我还没有拒绝的值)
[
{
_id: {
status: 'pending'
},
totalStatus: 15
},
{
_id: {
status: 'approved'
},
totalStatus: 27
}
]
然后,我运行了一个循环并使用了分解:
.then(status => {
for (const current of status) {
const [status, total] = [current._id.status, current.totalStatus];
console.log(status + ': ' + total);
}
next();
})
这给了我:
pending: 15
approved: 27
但这仍然不是我真正想要的。我需要将这些值放入它们自己的变量中。我怎样才能做到这一点?
最佳答案
您通过汇总获得了状态和文档计数。请尝试将这些值放入其相应的变量中:
let pending, approved, rejected;
switch (status.toLowerCase()) {
case 'pending': pending = total;
break;
case 'approved' : approved = total;
break;
case 'rejected': rejected = total;
break;
}
将开关包含在循环中。
关于javascript - 计算状态记录(已批准,未决,已拒绝)的记录,并将值返回到其各自的变量中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54104949/