Hoe duplicaten te vinden in mongodb


U kunt de volgende syntaxis gebruiken om documenten met dubbele waarden in MongoDB te vinden:

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

Dit is wat deze syntaxis doet:

  • Groepeer alle documenten met dezelfde waarde in veld 1
  • Match groepen die meer dan één document hebben
  • Projecteer alle groepen die meer dan één document hebben

Deze specifieke zoekopdracht zoekt naar dubbele waarden in de veld1- kolom. Bewerk deze waarde eenvoudig om het veld waarin u wilt zoeken te wijzigen.

In het volgende voorbeeld ziet u hoe u deze syntaxis kunt gebruiken met een incassoteam met de volgende documenten:

 db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 })
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 22 })
db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 })
db.teams.insertOne({team: " Rockets ", position: " Forward ", points: 26 })
db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })

Voorbeeld: Zoek documenten met dubbele waarden

We kunnen de volgende code gebruiken om alle dubbele waarden in de kolom „team“ te vinden:

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

Deze query retourneert de volgende resultaten:

 { name: 'Rockets' }
{ name: 'Mavs' }

Dit vertelt ons dat de waarden „Rockets“ en „Mavs“ meerdere keren voorkomen in het veld „team“.

Merk op dat we $team eenvoudig kunnen vervangen door $position om in plaats daarvan naar dubbele waarden in het veld „position“ te zoeken:

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

Deze query retourneert de volgende resultaten:

 { name: 'Guard' }

Dit vertelt ons dat “Bewaker” meerdere keren verschijnt in het veld “positie”.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende bewerkingen in MongoDB kunt uitvoeren:

MongoDB: Hoe u een nieuw veld aan een verzameling toevoegt
MongoDB: Groeperen op en tellen
MongoDB: groeperen op meerdere velden

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert