【问题标题】:Count the number of duplicate elements in MongoDB计算 MongoDB 中重复元素的数量
【发布时间】:2021-12-22 06:54:36
【问题描述】:

我在 mongodb 中遇到了集合打击:

{
    "Id": "5",
    "Group": [
        {
            "Name": "frank",
            "Roll": "123"
        }
    ]
},
{
    "Id": "6",
    "Group": [
        {
            "Name": "John",
            "Roll": "124"
        }
    ]
},
{
    "Id": "7",
    "Group": [
        {
            "Name": "John",
            "Roll": "125"
        }
    ]
}

名字“John”出现了两次。我想显示多次出现的每个名称的数量:

{"Name": "John", "Count":2 }

【问题讨论】:

    标签: mongodb count duplicates aggregation


    【解决方案1】:

    您可以使用此聚合查询:

    • 首先$unwind 解构数组并将所有值作为对象获取。
    • 然后按名称分组,$sum 1 代表每个名称。
    • 然后$match 获取那些存在多次(即重复)的值
    • 最后一个阶段是输出您想要的值,在本例中为 NameCount
    db.collection.aggregate([
      {
        "$unwind": "$Group"
      },
      {
        "$group": {
          "_id": "$Group.Name",
          "Count": {
            "$sum": 1
          },
          
        }
      },
      {
        "$match": {
          "Count": {
            "$gt": 1
          }
        }
      },
      {
        "$project": {
          "_id": 0,
          "Name": "$_id",
          "Count": 1
        }
      }
    ])
    

    例如here

    【讨论】:

      猜你喜欢
      • 2020-12-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-12
      • 1970-01-01
      • 2013-08-20
      • 2014-11-12
      • 2015-10-31
      相关资源
      最近更新 更多