【问题标题】:MongDB Aggregate two values with same nameMongoDB聚合两个具有相同名称的值
【发布时间】:2022-06-15 22:11:33
【问题描述】:

我的代码中有以下聚合函数来计算在数据库中找到值的次数:

  let data: any = await this.dataModel.aggregate(
      [
        {
          $match: {
            field: new ObjectID(fieldID),
          },
        },
        {
          $group: {
            _id: "$value",
            total_for_value: { $sum: 1 },
          },
        },
      ]
    );

这可以正常工作,但是我的数据设置有点不同。我有两种类型的值字段。有些是这样的:

_id: 'FEMALE' 

还有一些这样的:

_id:  value: "FEMALE"

有没有办法将 _id 和 _id.label 相同的那些分组?目前它分别计算它们。

【问题讨论】:

  • 示例文件?
  • 创建三个小组赛阶段。一个用于您的_id,一个用于_id.value,然后一个用于对这两者进行分组。

标签: javascript mongodb aggregate


【解决方案1】:
   {
      $group: {
        _id: {
          id:  "$_id",
          another_id: "$_id.value"
        }
        total_for_value: { $sum: 1 },
      },
    },

如果_id.value 是一个对象,这将完成这项工作。

【讨论】:

    猜你喜欢
    • 2022-12-05
    • 1970-01-01
    • 2020-01-22
    • 2022-09-23
    • 2014-11-12
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多