首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我可以在嵌套的mongo查询中生成和。

我可以在嵌套的mongo查询中生成和。
EN

Stack Overflow用户
提问于 2019-11-24 21:55:41
回答 2查看 49关注 0票数 0

我整个周末都在尝试编写这个查询,但是它不起作用。嵌套字段工作,但另一个字段不显示$sum。

这是集合的一个例子:

代码语言:javascript
运行
复制
{
  "_id": ObjectId("5dc28a3fd89a4d7bb82a75b4"),
  "bedrijf": ObjectId("5c7ee51d2478a30fa4357b4c"),
  "doelgroep": "Kinderen 12-",
  "recreatieleider": 1,
  "__v": 0
}

我喜欢将键"bedrijf“分组,并创建一个子组"doelgroep”,我使用的代码是:

代码语言:javascript
运行
复制
{
  $group: {
    _id: {
      bedrijf: "$bedrijf",
      doelgroep: "$doelgroep",
    },
    "totaal": {
      $sum: 1
    }
  }
},
{
  $group : {
    _id : '$_id.bedrijf',
    doelgroep : {
      "$push": {
        doelgroep:"$_id.doelgroep",
        total:"$totaal"
      }
  },
    "recreatieleider": {
      $sum: "$recreatieleider"
    }
  }
}

但是,当我看到结果时,关键的“重新创建器”不会对条目进行求和。

代码语言:javascript
运行
复制
{
"results": [
    {
        "_id": "5c69c5d939fbb38a1fcf3146",
        "doelgroep": [
            {
                "doelgroep": "Gezinnen",
                "total": 1
            },
            {
                "doelgroep": "Kinderen 9-11",
                "total": 9
            }
        ],
        "recreatieleider": 0
    }
  ]
}

那么,我该如何计算“再创造”的价值呢?

我的最后预期产出必须是:

代码语言:javascript
运行
复制
{
"results": [
    {
        "_id": "5c69c5d939fbb38a1fcf3146",
        "doelgroep": [
            {
                "doelgroep": "Gezinnen",
                "total": 1
            },
            {
                "doelgroep": "Kinderen 9-11",
                "total": 9
            }
        ],
        "recreatieleider": 20
    }
  ]
}

附加问题

我遇到了另一个问题。你让我解决了第一个问题。当一个mak另一个子组时,它不会显示给我

我使用这个代码

代码语言:javascript
运行
复制
{
  $group: {
    _id: {
      bedrijf: "$bedrijf",
      doelgroep: "$doelgroep",
    },
    "totaal": {
      $sum: 1
    },
    "hulpkrachten": {
      $sum: "$hulpkrachten"
    },
    "recreatieleider": {
      $sum: "$recreatieleider"
    },
    "stagiaires": {
      $sum: "$stagiaires"
    },
  }
},
{
  $group : {
    _id : '$_id.bedrijf',
    doelgroep : {
      "$push": {
        doelgroep:"$_id.doelgroep",
        total:"$totaal"
      }
  },
  soortactiviteit : {
    "$push": {
      soortactiviteit:"$_id.soortactiviteit",
      total:"$totaal"
    }
}
  }
}

您可以看到,我在其中添加了"soortactiviteit“,但它不会添加u子群。

快速程序的结果必须是

代码语言:javascript
运行
复制
    {
"results": [
    {
        "_id": "5c69c5d939fbb38a1fcf3146",
        "doelgroep": [
            {
                "doelgroep": "Gezinnen",
                "total": 1
            },
            {
                "doelgroep": "Kinderen 9-11",
                "total": 9
            }
        ],
            "soortactivieit": [
            {
                "doelgroep": "creativiteit",
                "total": 20
            },
            {
                "doelgroep": "sports,
                "total": 9
            }
        ],
        "recreatieleider": 20
    }
  ]
}

也许你能帮我回答我最后一个关于这个问题的问题。谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-11-25 06:29:29

不确定,您正试图通过这个查询实现什么。但是,下面的查询适用于您的场景。

代码语言:javascript
运行
复制
{ 
   $group:{ 
      _id:{ 
         bedrijf:"$bedrijf",
         doelgroep:"$doelgroep",

      },
      "totaal":{ 
         $sum:1
      },
      "recreatieleider":{ 
         $sum:"$recreatieleider"
      }
   }
},
{ 
   $group:{ 
      _id:'$_id.bedrijf',
      doelgroep:{ 
         "$push":{ 
            doelgroep:"$_id.doelgroep",
            total:"$totaal"
         }
      },
      "recreatieleider":{ 
         $sum:"$recreatieleider"
      }
   }
}
票数 1
EN

Stack Overflow用户

发布于 2019-11-25 06:27:55

当第一次$group运行时,密钥重新创建器将丢失在

代码语言:javascript
运行
复制
{
  $group: {
    _id: {
      bedrijf: "$bedrijf",
      doelgroep: "$doelgroep",
    },
    "totaal": {
      $sum: 1
    }
  }
},

将其更改为,然后尝试:

代码语言:javascript
运行
复制
{
      $group: {
        _id: {
          bedrijf: "$bedrijf",
          doelgroep: "$doelgroep",
        },
        "totaal": {
          $sum: 1
        },
        "recreatieleider": {
          $sum: "$recreatieleider"
        }
      }
    },
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59022817

复制
相关文章

相似问题

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