【问题标题】:How to find Distinct No of Document on specific field MongoDB and Implement in Java如何在特定字段 MongoDB 上查找不同的文档编号并在 Java 中实现
【发布时间】:2021-12-04 16:23:26
【问题描述】:

我有数据,需要按两个字段分组,并作为响应显示唯一字段以及该字段上有多少个字段。 样本数据:

[
   {
      "categoryCode":"categoryCode1",
      "categoryName":"categoryName1",
      "cat_id": "A"
   },
   {
      "categoryCode":"categoryCode1",
      "categoryName":"categoryName1",
      "cat_id": "B"
   },
   {
      "categoryCode":"categoryCode2",
      "categoryName":"categoryName2",
      "cat_id": "C"
   }
]

预期输出:

[
   {
      "categoryCode":"categoryCode1",
      "categoryName":"categoryName1",
      "cat_count": 2
   },
   {
      "categoryCode":"categoryCode2",
      "categoryName":"categoryName2",
      "cat_count": 1
   }
]

以及如何使用聚合对象在 java 中实现。 GroupOperation groupOperation = Aggregation.group("categoryCode", "categoryName").sum(1).as("cat_count");但是在 sum 方法中没有出现编译错误 1

【问题讨论】:

    标签: mongodb mongodb-query spring-data


    【解决方案1】:
    1. $group - 按 categoryCodecategoryName 分组。并在与组匹配时为$sum添加聚合字段cat_count
    2. $project - 显示所需输出字段的文档。
    db.collection.aggregate([
      {
        $group: {
          _id: {
            "categoryCode": "$categoryCode",
            "categoryName": "$categoryName"
          },
          "cat_count": {
            $sum: 1
          }
        }
      },
      {
        $project: {
          "_id": 0,
          "categoryCode": "$_id.categoryCode",
          "categoryName": "$_id.categoryName",
          "cat_count": "$cat_count"
        }
      }
    ])
    

    Sample Mongo Playground

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-07
      • 1970-01-01
      • 1970-01-01
      • 2019-05-17
      • 1970-01-01
      相关资源
      最近更新 更多