Por lo que sería esta consulta en SQL (para encontrar duplicados):¿Cuál es la forma correcta de hacer un TENER en un GRUPO MongoDB?
SELECT userId, name FROM col GROUP BY userId, name HAVING COUNT(*)>1
que realiza esta consulta simple en MongoDB:
res = db.col.group({key:{userId:true,name:true},
reduce: function(obj,prev) {prev.count++;},
initial: {count:0}})
He añadido un simple bucle Javascript para repasar el conjunto de resultados, y se realizó un filtro para buscar todos los campos con un recuento> 1 existe, de este modo:
for (i in res) {if (res[i].count>1) printjson(res[i])};
¿hay una mejor manera de hacer esto con excepción de usar código javascript i n el cliente? Si esta es la mejor manera/más simple, dicen que es, y esta pregunta le ayudará a alguien :)
echa un vistazo a la pregunta similar http://stackoverflow.com/questions/4224773/fast-way-to-find-duplicates-on-indexed-column-in-mongodb – RameshVel
Es similar, pero no es lo mismo. Estoy usando una función de grupo, no la función de reducción de mapas de MongoDB. – shlomoid
Pero este sitio que está vinculado a partir de esa respuesta ayuda, con un ejemplo simple: http://csanz.posterous.com/look-for-duplicates-using-mongodb-mapreduce – shlomoid