Mongodb: hoe u een nieuw veld aan een verzameling toevoegt
U kunt de volgende methoden gebruiken om een nieuw veld toe te voegen aan elk document in een verzameling in MongoDB:
Methode 1: Voeg een nieuw veld toe zonder waarden
db.collection.updateMany({}, { $set :{" new_field ": null}})
Methode 2: Voeg een nieuw veld toe met een specifieke waarde
db.collection.updateMany({}, { $set :{" new_field ": 10 }})
Methode 3: Voeg een nieuw veld toe met waarden uit bestaande velden
db.collection.updateMany( {}, [ {" $set ": {" name ": { " $concat ": [" $field1 ", " ", " $field2 "]}}} ] )
De volgende voorbeelden laten zien hoe u elke methode kunt gebruiken met een incassoteam met de volgende documenten:
db.teams.insertOne({team: " Mavs ", position: " Guard ", points: 31 }) db.teams.insertOne({team: " Spurs ", position: " Guard ", points: 22 }) db.teams.insertOne({team: " Rockets ", position: " Center ", points: 19 }) db.teams.insertOne({team: " Warriors ", position: " Forward ", points: 26 }) db.teams.insertOne({team: " Cavs ", position: " Guard ", points: 33 })
Voorbeeld 1: Voeg een nieuw veld toe zonder waarden
We kunnen de volgende code gebruiken om een nieuw veld genaamd „bounces“ met een nulwaarde toe te voegen aan elk bestaand document in de verzameling:
db.teams.updateMany({}, { $set :{" rebounds ": null}})
We kunnen de volgende query gebruiken om de eerste bijgewerkte documenten weer te geven:
db.teams.find().limit( 3 )
Deze query retourneert de volgende documenten:
{ _id: ObjectId("6189325896cd2ba58ce928e5"), team: 'Mavs', position: 'Guard', points: 31, rebounds: null } { _id: ObjectId("6189325896cd2ba58ce928e6"), team: 'Spurs', position: 'Guard', points: 22, rebounds: null } { _id: ObjectId("6189325896cd2ba58ce928e7"), team: 'Rockets', position: 'Center', points: 19, rebounds: null }
Merk op dat elk document nu een veld heeft met de naam „bounces“ met een nulwaarde.
Voorbeeld 2: Voeg een nieuw veld toe met een specifieke waarde
We kunnen de volgende code gebruiken om een nieuw veld genaamd „bounces“ met een waarde van 10 toe te voegen aan elk bestaand document in de verzameling:
db.teams.updateMany({}, { $set :{" rebounds ": 10 }})
We kunnen de volgende query gebruiken om de eerste bijgewerkte documenten weer te geven:
db.teams.find().limit( 3 )
Deze query retourneert de volgende documenten:
{ _id: ObjectId("6189325896cd2ba58ce928e5"), team: 'Mavs', position: 'Guard', points: 31, rebounds: 10 } { _id: ObjectId("6189325896cd2ba58ce928e6"), team: 'Spurs', position: 'Guard', points: 22, rebounds: 10 } { _id: ObjectId("6189325896cd2ba58ce928e7"), team: 'Rockets', position: 'Center', points: 19, rebounds: 10 }
Merk op dat elk document nu een veld heeft met de naam „bounces“ met een waarde van 10.
Voorbeeld 3: Voeg een nieuw veld toe met waarden uit bestaande velden
We kunnen de volgende code gebruiken om een veld met de naam ’naam‘ toe te voegen, waarvan de waarde een aaneenschakeling is van de bestaande velden ‚team‘ en ‚positie‘:
db.teams.updateMany( {}, [ {" $set ": {" name ": { " $concat ": [" $team ", " ", " $position "]}}} ] )
We kunnen de volgende query gebruiken om de eerste bijgewerkte documenten weer te geven:
db.teams.find().limit( 3 )
Deze query retourneert de volgende documenten:
{ _id: ObjectId("618934cb96cd2ba58ce928ea"), team: 'Mavs', position: 'Guard', points: 31, name: 'Mavs Guard' } { _id: ObjectId("618934cb96cd2ba58ce928eb"), team: 'Spurs', position: 'Guard', points: 22, name: 'Spurs Guard' } { _id: ObjectId("618934cb96cd2ba58ce928ec"), team: 'Rockets', position: 'Center', points: 19, name: 'Rockets Center' }
Merk op dat elk document nu een veld heeft met de naam „naam“ waarvan de waarde een aaneenschakeling is van de velden „team“ en „positie“.
Opmerking : u kunt hier de volledige documentatie voor de functie updateMany() vinden.
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in MongoDB kunt uitvoeren:
MongoDB: velden hernoemen
MongoDB: velden verwijderen
MongoDB: Hoe u kunt controleren of een veld een string bevat
MongoDB: query’s uitvoeren met een datumbereik
MongoDB: Query’s uitvoeren met een reguliere expressie „Vind ik leuk“.