最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

MongoDB的创建具有多个值的同一文档内的总和场

运维笔记admin15浏览0评论

MongoDB的创建具有多个值的同一文档内的总和场

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)

  1. 暂无评论