Mongodb: hoe u verschillende waarden uit meerdere velden selecteert
U kunt de volgende syntaxis gebruiken om verschillende waarden in meerdere velden in MongoDB te selecteren:
db.collection.aggregate( [ { $group : { "_id": { field1: " $field1 ", field2: " $field2 " } } } ] )
De volgende voorbeelden laten zien 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: " Rockets ", position: " Forward ", points: 29 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
Voorbeeld: Selecteer verschillende waarden in meerdere velden
We kunnen de volgende query gebruiken om alle afzonderlijke team- en positieveldwaarden te vinden:
db.teams.aggregate( [ { $group : { "_id": { team: " $team ", position: " $position " } } } ] )
Deze query retourneert de volgende documenten:
{ _id: { team: 'Mavs', position: 'Guard' } } { _id: { team: 'Rockets', position: 'Forward' } } { _id: { team: 'Rockets', position: 'Center' } } { _id: { team: 'Cavs', position: 'Guard' } }
En we kunnen de volgende zoekopdracht gebruiken om alle afzonderlijke waarden van de team-, positie- en puntenvelden te vinden:
db.teams.aggregate( [ { $group : {"_id": {team: " $team ", position: " $position ", points: " $points "}}} ] )
Deze query retourneert de volgende documenten:
{ _id: { team: 'Cavs', position: 'Guard', points: 33 } } { _id: { team: 'Rockets', position: 'Forward', points: 29 } } { _id: { team: 'Mavs', position: 'Guard', points: 22 } } { _id: { team: 'Rockets', position: 'Forward', points: 26 } } { _id: { team: 'Mavs', position: 'Guard', points: 31 } } { _id: { team: 'Rockets', position: 'Center', points: 19 } }
Houd er rekening mee dat alle documenten worden geretourneerd omdat geen twee documenten identieke waarden hebben voor de velden team, positie en punten.
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