Mongodb: come aggiungere un nuovo campo a una raccolta
Puoi utilizzare i seguenti metodi per aggiungere un nuovo campo a ciascun documento in una raccolta in MongoDB:
Metodo 1: aggiungi un nuovo campo senza valori
db.collection.updateMany({}, { $set :{" new_field ": null}})
Metodo 2: aggiungi un nuovo campo con un valore specifico
db.collection.updateMany({}, { $set :{" new_field ": 10 }})
Metodo 3: aggiungi un nuovo campo utilizzando i valori dei campi esistenti
db.collection.updateMany( {}, [ {" $set ": {" name ": { " $concat ": [" $field1 ", " ", " $field2 "]}}} ] )
I seguenti esempi mostrano come utilizzare ciascun metodo con un team di raccolta con i seguenti documenti:
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 })
Esempio 1: aggiungi un nuovo campo senza valori
Possiamo utilizzare il seguente codice per aggiungere un nuovo campo chiamato “rimbalzi” con un valore null a ciascun documento esistente nella raccolta:
db.teams.updateMany({}, { $set :{" rebounds ": null}})
Possiamo utilizzare la seguente query per visualizzare i primi documenti aggiornati:
db.teams.find().limit( 3 )
Questa query restituisce i seguenti documenti:
{ _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 }
Tieni presente che ogni documento ora ha un campo chiamato “rimbalzi” con un valore nullo.
Esempio 2: aggiungi un nuovo campo con un valore specifico
Possiamo utilizzare il seguente codice per aggiungere un nuovo campo chiamato “bounces” con un valore pari a 10 a ciascun documento esistente nella raccolta:
db.teams.updateMany({}, { $set :{" rebounds ": 10 }})
Possiamo utilizzare la seguente query per visualizzare i primi documenti aggiornati:
db.teams.find().limit( 3 )
Questa query restituisce i seguenti documenti:
{ _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 }
Tieni presente che ogni documento ora ha un campo chiamato “rimbalzi” con un valore pari a 10.
Esempio 3: aggiungi un nuovo campo utilizzando i valori dei campi esistenti
Possiamo utilizzare il codice seguente per aggiungere un campo chiamato “name” il cui valore è una concatenazione dei campi “team” e “position” esistenti:
db.teams.updateMany( {}, [ {" $set ": {" name ": { " $concat ": [" $team ", " ", " $position "]}}} ] )
Possiamo utilizzare la seguente query per visualizzare i primi documenti aggiornati:
db.teams.find().limit( 3 )
Questa query restituisce i seguenti documenti:
{ _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' }
Tieni presente che ogni documento ora ha un campo chiamato “nome” il cui valore è una concatenazione dei campi “squadra” e “posizione”.
Nota : puoi trovare la documentazione completa per la funzione updateMany() qui .
Risorse addizionali
I seguenti tutorial spiegano come eseguire altre attività comuni in MongoDB:
MongoDB: come rinominare i campi
MongoDB: come eliminare i campi
MongoDB: come verificare se il campo contiene una stringa
MongoDB: come eseguire query con un intervallo di date
MongoDB: come eseguire una query con un’espressione regolare “Mi piace”.