sql >> Databasteknik >  >> NoSQL >> MongoDB

Hitta dubbletter av poster i MongoDB

Använd aggregering på name och få name med count > 1 :

db.collection.aggregate([
    {"$group" : { "_id": "$name", "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, 
    {"$project": {"name" : "$_id", "_id" : 0} }
]);

Så här sorterar du resultaten efter flest till minst dubbletter:

db.collection.aggregate([
    {"$group" : { "_id": "$name", "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }, 
    {"$sort": {"count" : -1} },
    {"$project": {"name" : "$_id", "_id" : 0} }     
]);

För att använda med ett annat kolumnnamn än "namn", ändra "$name " till "$column_name "



  1. Hur uppdaterar man värdet för ett specifikt inbäddat dokument, inuti en array, för ett specifikt dokument i MongoDB?

  2. Mongodb Aggregation Framework | Gruppera över flera värden?

  3. Det går inte att ansluta till mongoDB som körs i docker-container

  4. Har MongoDB ett inbyggt REST-gränssnitt?