MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Modo rapido per trovare duplicati su colonne indicizzate in mongodb

Personalmente ho scoperto che su grandi database (1 TB e più) la risposta accettata è terribilmente lenta. L'aggregazione è molto più veloce. L'esempio è di seguito:

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

Cerca i documenti il ​​cui extra_info.id viene utilizzato due o più volte, ordina i risultati in ordine decrescente di un determinato campo e ne stampa i primi 5 valori.