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”.