MongoDB查找具有重复的propety值的文档

时间:2017-03-24 12:19:37

标签: mongodb

例如,我们有一个多边形集合,每个文档都包含属性坐标

coordinates: [
  {
    lat: 63.23598239
    lng: 37.94858921
  },
  {...}
]

我们如何找到所有在集合中复制此属性的文档。我们需要找到2个或更多具有相同坐标数组的文档。

1 个答案:

答案 0 :(得分:1)

你可以使用这样的聚合来实现这个目标:

db.test.aggregate([  
   {  
      $group:{  
         _id:"$coordinates",
         sum: {  
            $sum:1
         }, 
         listId: { 
            $push: "$_id"
         }
      }
   },
   {  
      $match:{  
         sum:{  
            $gte:2
         }
      }
   }
])

它将输出所有重复文档,例如:

{ "_id" : [ { "lat" : 63.23598239, "lng" : 37.94858921 } ], "sum" : 4, "listId": [1, 2, 3, 4] }