MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Schnelle Möglichkeit, Duplikate in indizierten Spalten in Mongodb zu finden

Ich persönlich habe festgestellt, dass die akzeptierte Antwort in großen Datenbanken (1 TB und mehr) schrecklich langsam ist. Die Aggregation ist viel schneller. Beispiel ist unten:

db.places.aggregate(
    { $group : {_id : "$extra_info.id", total : { $sum : 1 } } },
    { $match : { total : { $gte : 2 } } },
    { $sort : {total : -1} },
    { $limit : 5 }
    );

Es sucht nach Dokumenten, deren extra_info.id Wird zweimal oder öfter verwendet, sortiert die Ergebnisse in absteigender Reihenfolge des angegebenen Felds und gibt die ersten 5 Werte davon aus.