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

Aggiungi un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *