У меня есть коллекция пользователей ниже
[{
"_id": 1,
"adds": ["111", "222", "333", "111"]
}, {
"_id": 2,
"adds": ["555", "666", "777", "555"]
}, {
"_id": 3,
"adds": ["888", "999", "000", "888"]
}]
Мне нужно найти дубликаты внутри массива adds
Ожидаемый результат должен быть
[{
"_id": 1,
"adds": ["111"]
}, {
"_id": 2,
"adds": [ "555"]
}, {
"_id": 3,
"adds": ["888"]
}]
Я пробовал использовать множество операторов $setUnion
, $setDifference
, но ни один из них не помог.
Пожалуйста, помогите!!!
$unwind
? $unwind/$group/$match/$project будет простым подходом для сравнения с ответами, опубликованными до сих пор. Кроме того, какую конкретную версию сервера MongoDB вы используете? - person Stennie   schedule 10.12.2018$unwind
вызывает некоторые проблемы с производительностью. Найти дубликаты внутри массива не составляет большого труда. Для этого должен быть какой-то оператор агрегации? Не так ли? Кстати спасибо за ответ. - person Dark Knight   schedule 10.12.2018[{"111": 2, "222": 1, "333": 1}]
. - person Stennie   schedule 29.12.2018