sql >> Database >  >> NoSQL >> MongoDB

Mongo vindt duplicaten voor invoer voor twee of meer velden

U kunt de duplicaten gemakkelijk identificeren door de volgende aggregatiepijplijnbewerking uit te voeren:

db.collection.aggregate([
    { 
        "$group": { 
            "_id": { "foreing": "$foreing", "value": "$value" }, 
            "uniqueIds": { "$addToSet": "$_id" },
            "count": { "$sum": 1 } 
        }
    }, 
    { "$match": { "count": { "$gt": 1 } } }
])

De $group operator in de eerste stap wordt gebruikt om de documenten te groeperen op de foreign en value sleutelwaarden en maak vervolgens een array van _id waarden voor elk van de gegroepeerde documenten als de uniqueIds veld met behulp van de $addToSet exploitant. Dit geeft u een reeks unieke expressiewaarden voor elke groep. Verkrijg het totale aantal gegroepeerde documenten om in de latere pijplijnfasen te gebruiken met de $sum telefoniste.

Gebruik in de tweede pijplijnfase de $match operator om alle documenten uit te filteren met een telling van 1. De uitgefilterde documenten vertegenwoordigen unieke indexsleutels.

De overige documenten zijn die in de collectie die dubbele sleutelwaarden hebben voor paar foreing &value .



  1. Hoe MongoDB 4.2 op RedHat/ CentOS 7-systemen te installeren

  2. redis en watch + multi staan ​​gelijktijdige gebruikers toe

  3. C# mongo-query's met json-tekenreeksen

  4. Opgeslagen JavaScript-functies gebruiken in de aggregatiepijplijn, MapReduce of runCommand