Removendo registros duplicados usando o MapReduce
Estou usando o MongoDB e preciso remover registros duplicados. Eu tenho uma coleção de listagem com a seguinte aparência: (simplificada)
[
{ "MlsId": "12345"" },
{ "MlsId": "12345" },
{ "MlsId": "23456" },
{ "MlsId": "23456" },
{ "MlsId": "0" },
{ "MlsId": "0" },
{ "MlsId": "" },
{ "MlsId": "" }
]
Uma listagem é duplicada se o MlsId não for "" ou "0" e outra listagem tiver o mesmo MlsId. Portanto, no exemplo acima, os 2º e 4º registros precisariam ser removido
Como encontrar todas as listagens duplicadas e removê-las? Comecei a examinar o MapReduce, mas não consegui encontrar um exemplo adequado ao meu caso.
Aqui está o que tenho até agora, mas ele não verifica se o MlsId é "0" ou "":
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();