MongoDB的创建具有多个值的同一文档内的总和场
正如标题说,我想打一个函数,总结所有的硬币到TotalCoins在MongoDB的特定用户的文件内。我发现$add,但我不知道如何与它解决的问题。
PS:我使用MongoDB的,猫鼬表达的NodeJS
我有一个用户采集具有由该用户和其他钱币与其他用户的百分比得到了由该用户A.简称获得硬币
因此,用户模式是这样的
{
"_id": {
"$oid": "5abcbee7ff1e4849b8f642b5"
},
"name": "test1",
"email": "[email protected]",
"username": "test1",
"password": "$2a$10$/Y6Gns8OPsp8eudVBrfUx.clwNwixAmeqhVzBYKUyNuoGcR3XQP8e",
"joindate": "29/03/2018 11:24",
"lastdailybonus": "28/03/2018 11:24",
"profileimgurl": "img.jpg",
"referralUrl": "r1xk1rq5g",
"referredBy":"syiqyb9cz",
"referredUsers": [
{
"id": {
"$oid": "5abcbf29ff1e4849b8f642b6"
},
"coins": 50
},
{
"id": {
"$oid": "5abcbf9b9a3ca4425489777e"
},
"coins": 76
}
],
"completedMissions": [],
"coinsEarned":1500,
"__v": 2
}
回答如下:
尝试这个:
db.sample.aggregate([
{
$addFields: {
totalCoins: {
$reduce: {
input: "$referredUsers",
initialValue: 0,
in: { $add : ["$$value", "$$this.coins"] }
}
}
}
},
{$addFields:{totalCoins:{$add:["$totalCoins","$coinsEarned"]}}},
{$out: "sample"}
])
与本文相关的文章
评论列表(0)
- 暂无评论