例如,我们有一个多边形集合,每个文档都包含属性坐标
coordinates: [
{
lat: 63.23598239
lng: 37.94858921
},
{...}
]
我们如何找到所有在集合中复制此属性的文档。我们需要找到2个或更多具有相同坐标数组的文档。
答案 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] }