我在mongodb COLL中具有LineString几何形状,但是有时会交换这些几何形状。我也想找到这些。我有一个解决方案,当它们具有完全相同的几何形状时,可以在集合中查找重复的文档(请参见下面的代码),但我也想查找类似的情况:
"geometry.coordinates" : [ [13.1, 50.1], [13.2, 50.2] ]
"geometry.coordinates" : [ [13.2, 50.2], [13.1, 50.1] ]
//This is my actual code
db.COLL.aggregate([
{ $match: {}},
{ $group: {
_id: { geometry: "$geometry"},
dups: { "$addToSet": "$_id" },
count: { "$sum": 1 }
}},
{ $match: {
count: { "$gt": 1 }
}}
],
{allowDiskUse: true}
)
如果您知道在mongodb中是不可能的,请解释为什么不可以。
答案 0 :(得分:0)
最后,我解决了将数组解析为集合的问题:
db.COLL.aggregate([
{ $match: {}},
{ $group: {
_id: {
geometry: {
$setUnion: ["$geometry.coordinates"]
}
},
dups: { "$addToSet": "$_id" },
count: { "$sum": 1 }
}},
{ $match: {
count: { "$gt": 1 }
}}
],
{allowDiskUse: true}
)