найти дубликаты массивов в mongodb - PullRequest
1 голос
/ 24 июня 2019

У меня есть геометрия LineString в COLL mongodb, но геометрии иногда меняются местами. Я тоже хочу найти это. У меня есть решение найти дубликаты документов (см. Код ниже) в коллекции, когда они имеют точно такую ​​же геометрию, но я также хочу найти случаи, такие как:

"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, объясните, почему нет.

1 Ответ

0 голосов
/ 24 июня 2019

Наконец я решил проблему с разбором массивов в наборы:

db.COLL.aggregate([
    { $match: {}},
    { $group: {
        _id: { 
            geometry: { 
                $setUnion: ["$geometry.coordinates"] 
            }
        }, 
        dups: { "$addToSet": "$_id" },
        count: { "$sum": 1 }
    }},
    { $match: {
        count: { "$gt": 1 }
    }}
],
    {allowDiskUse: true} 
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...