首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mongodb 2集合聚合

Mongodb 2集合聚合
EN

Stack Overflow用户
提问于 2022-11-21 07:57:07
回答 1查看 17关注 0票数 0

总结第二个集合中的要点,并将其放在第一个集合中。

提供两项收藏品:

代码语言:javascript
复制
a:

    {
     _id: 123323525245,
     token: "token_1",
     points: 0
    },
    {
     _id: 3454545334
     token: "token_2"
     points: 0
    }

b:

    _id: 1324454:
    lines: [
    {
      token: "token_1",
      points: 20
    },
    {
      token: "token_1",
      points: 10
    },
    {
      token: "token_2",
      points: 12
    }
  ]

我想通过标记总结集合b中的所有要点,并将其放入预期的集合中:

代码语言:javascript
复制
a:
    {
       _id: 123323525245,
       token: "token_1",
       points: 30
    },
    {
       _id: 3454545334
       token: "token_2"
       points: 12
    }

我应该使用什么查询?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-11-21 08:44:40

首先展开集合b,然后按令牌分组。

代码语言:javascript
复制
db.b.aggregate([
  {
    "$unwind": "$lines"
  },
  {
    "$group": {
      "_id": "$lines.token",
      "points": {
        "$sum": "$lines.points"
      }
    }
  },
  {
    "$lookup": {
      "from": "a",
      "localField": "_id",
      "foreignField": "token",
      "as": "docs"
    }
  },
  {
    "$project": {
      "_id": {
        "$first": "$docs._id"
      },
      "points": "$points",
      "token": "$_id"
    }
  }
])

蒙古操场

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74515755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档