我收藏有100件物品,每件物品都有一个“钱”字段,我需要从所有人那里得到钱的总和,最好没有拐杖。我不知道该怎么做了。
const allMoney = async () => {
let count = 0;
await User.find({}).sort({ money: -1 }).forEach(plr => { count+=plr.money });
return count;
}
“用户是我的模型”
答案 0 :(得分:0)
您可以将聚合与一个组一起使用,这将很容易为您获取总金额。
参考:https://docs.mongodb.com/manual/reference/operator/aggregation/group/ 以获得更多说明。
const allMoney = async () => {
var aggregate = Scheme.aggregate()
aggregate.group({
_id: null,
totalMoney: {$sum: '$money'}
)}
aggregate.exec(function(err, result) {
if (err) return err;
return result;
});
}
答案 1 :(得分:0)
尝试使用猫鼬aggregation framework与$group,并 $sum运营商,只是这样的:
# sample dataframe
BOX DESCRIPTION
0 NEW STORE
1 BOXES STORE (1-1,999 SF) LOW RISK
2 BOXES (61-150) HIGH RISK
3 BOXES (0-30) MODERATE RISK
4 BOXES (151 + ) HIGH RISK
5 BOXES (151 + ) LOW RISK
6 BOXES (151 + ) MODERATE RISK
7 BOXES (31-60) LOW RISK
8 BOXES (0-30) HIGH RISK
9 BOXES (31-60) HIGH RISK
10 BOXES (0-30) LOW RISK
11 BOXES (2,000+ SF) MODERATE RISK
12 BOXES (2,000+ SF) LOW RISK
13 BOXES (2,000+ SF) HIGH RISK
14 BOXES STORE (1-1,999 SF) MODERATE
15 BOXES STORE (1-1,999 SF) HIGH RISK
16 BOXES (61-150) LOW RISK
17 BOXES (61-150) MODERATE RISK
18 BOXES (31-60) MODERATE RISK
EXPECTED OUT
BOX DESCRIPTION
0 NEW STORE BOXES
1 BOXES STORE LOW RISK (1,1-999 SF)
2 BOXES LOW RISK (61 - 150)
3 BOXES (0-30) MODERATE RISK
4 BOXES (151 + ) HIGH RISK
5 BOXES (151 + ) LOW RISK
6 BOXES (151 + ) MODERATE RISK
7 BOXES (31-60) LOW RISK
的 _id:空强>表达是必要的,因为一组规范必须强制性地包括它。否则猫鼬会抛出错误。