Я использую MongoDB и мне нужно удалить дубликаты записей. У меня есть листинг коллекции, который выглядит так: (упрощенно)
[
{ "MlsId": "12345"" },
{ "MlsId": "12345" },
{ "MlsId": "23456" },
{ "MlsId": "23456" },
{ "MlsId": "0" },
{ "MlsId": "0" },
{ "MlsId": "" },
{ "MlsId": "" }
]
Листинг является дубликатом, если MlsId не равен "" или "0", а другой листинг имеет тот же MlsId. Таким образом, в приведенном выше примере 2-я и 4-я записи должны быть удалены.
Как мне найти все дубликаты списков и удалить их? Я начал смотреть на MapReduce, но не смог найти пример, подходящий для моего случая.
Вот то, что у меня есть, но оно не проверяет, является ли MlsId "0" или "":
m = function () {
emit(this.MlsId, 1);
}
r = function (k, vals) {
return Array.sum(vals);
}
res = db.Listing.mapReduce(m,r);
db[res.result].find({value: {$gt: 1}});
db[res.result].drop();