Tengo una colección con un montón de documentos, por ejemplo
{ artículos: [IdObjeto1, IdObjeto2, etc.] }
¿Cómo ejecuto una consulta para identificar qué documentos tienen duplicados? .distinct devuelve valores distintos en la colección, pero quiero poder informar por documento:
itemsitems únicos/distintos esencialmente, para comprender qué documentos tienen duplicados en la matriz de items .
Puede usar la agregación con el operador $addToSet para tener elementos únicos en el conjunto:
db.collection.aggregate([ { "$unwind": "$items" }, { "$group": { "_id": "$_id", "items_cnt": { "$sum": 1 }, "unique_items": { "$addToSet": "$items" } } }, { "$project": { "items_cnt": 1, "unique_items_cnt": { "$size": "$unique_items" } } } ])