Possiamo aggiornare il documento di raccolte MongoDB utilizzando il metodo Update (). Il metodo update () necessita di una condizione per l'istruzione Aggiorna per garantire che solo i documenti pertinenti vengano aggiornati. La query di aggiornamento prende i due parametri per aggiornare il campo dei documenti. Il primo parametro è il valore esistente del campo specificato che vogliamo essere aggiornati. Il secondo parametro è specificato con la parola chiave $ set che è necessaria per aggiornare il valore del documento specificato successivo.
Come aggiornare il documento in MongoDB
Prima di utilizzare la query di aggiornamento, abbiamo bisogno della collezione MongoDB. Creiamo la collezione "Prodotti" che contiene i documenti. I documenti nei "prodotti" sono inseriti utilizzando la seguente query:
db.Prodotti.InsertMany ([
_id: 1,
Prodotto: "jeans neri",
Qty: 15,
Dimensione: "Medio",
Stato: "Disponibile",
Prezzo: 400
,
_id: 2,
Prodotto: "maglietta bianca",
Qty: 10,
taglia piccola",
Stato: "Non disponibile",
Prezzo: 550
,
_id: 3,
Prodotto: "Scarpe al neon",
Qty: 5,
taglia piccola",
Stato: "Disponibile",
Prezzo: 750
,
_id: 4,
Prodotto: "legami",
Qty: 20,
dimensione: "grande",
Stato: "Non disponibile",
Prezzo: 350
,
_id: 5,
Prodotto: "camicie formali",
Qty: 17,
dimensione: "grande",
Stato: "Disponibile",
Prezzo: 400
])
La collezione "Products" MongoDB è inserita con successo con i documenti precedentemente definiti. Il messaggio del documento di inserimento è mostrato nel seguente. Ora possiamo applicare la query di aggiornamento su questi documenti.
Esempio 1: MongoDB aggiorna il documento per lo stesso campo
Considera l'esempio in cui viene utilizzata la query di aggiornamento per aggiornare il valore corrente con quello nuovo. Il metodo Update () viene applicato alla collezione "Products" MongoDB. Il metodo Update () viene passato con il tasto "Prodotto" il cui valore è impostato come "camicie formali" nel documento. Vogliamo aggiornare il valore di questo campo "Prodotto" per il quale forniamo il secondo parametro nel metodo Update ().
L'espressione "$ set: prodotto:" giacca "" è il secondo parametro che imposta il nuovo valore per il valore corrente. Viene utilizzata la parola chiave $ set che prende il nome del campo "prodotto" e imposta il valore "giacche" aggiornato contro di essa. Tieni presente quella cosa che i dati del valore del campo specificato dovrebbero essere gli stessi nella raccolta.
db.Prodotti.AGGIORNAMENTO (Product: "Shirt formali", $ set: Product: "Jackets")
Nell'output, il monte corrispondente indica i documenti che corrispondono ai criteri e il numero di modificato mostra il numero di documenti aggiornati.
Verifichiamo che il valore sia aggiornato nella raccolta. Per questo, chiamiamo il metodo Find () e inseriamo il valore "_id" di "5" del documento aggiornato.
db.Prodotti.find (_ id: 5)
Il valore "giacche" viene aggiornato nei documenti come mostrato nei seguenti:
Esempio 2: MongoDB aggiorna il documento per i diversi campi
Successivamente, aggiorniamo il documento con i diversi campi. Considera la seguente query in cui utilizziamo il metodo Update () e forniamo la condizione al suo interno per aggiornare il documento. Qui, aggiorniamo il documento che ha "_id" come "1". Quindi, il campo _id con il valore è impostato come primo parametro. Quindi, abbiamo la parola chiave $ set che prende il campo "prodotto" che viene dato un nuovo valore come "jeans blu".
db.Prodotti.aggiornamento(
"_id": 1,
$ set: "Product": "Blue Jeans");
I risultati veri sono generati con il dettaglio che il valore viene aggiornato alla chiave specificata. Il metodo update () valuta innanzitutto la condizione e imposta il valore modificato con la parola chiave $ set.
Il valore aggiornato di "_id: 1" è segnato dalla raccolta "Prodotto" applicando la seguente query:
L'output conferma che il valore "jeans blu" viene aggiornato con i "jeans neri" nel documento.
Esempio 3: MongoDB aggiorna il documento per più campi
Per modificare più documenti alla volta, la query del metodo update () deve essere specificata con più opzioni. Nel seguente query di esempio, utilizziamo il metodo Update () che inserisce il campo "_id" il cui valore è "2". Vogliamo che questo documento venga modificato con i nuovi valori. Quindi, abbiamo un modificatore di $ set che aggiorna i valori dei due campi, "dimensione" e "prezzo", con i valori appena assegnati.
db.Prodotti.Aggiorna (_id: 2, $ set: "dimensione": "grande", "prezzo": 450)
I valori per le dimensioni e i campi di prezzo sono modificati nel documento che visualizziamo eseguendo la query Trova sulla shell.
Esempio 4: MongoDB aggiorna il documento utilizzando il metodo UpdateOne ()
Il metodo UpdateOne () è un altro modo per aggiornare un documento nella raccolta. Possiamo aggiornare solo un documento in una raccolta che soddisfa i criteri di ricerca forniti. Anche se innumerevoli documenti soddisfano i criteri, aggiorna solo il primo. La seguente query utilizza il metodo UpdateOne () per aggiornare il documento. Diamo la "Qtà: 17" come criteri di filtro. Il metodo UpdateOne () trova il documento la cui "Qty" è "17". Quindi, il parametro successivo imposta il campo "Stato" con il valore "non disponibile" utilizzando l'operatore $ set per aggiornare il documento abbinato.
db.Prodotti.Aggiornamento (qty: 17, $ set: status: "non disponibile")
L'esecuzione di questa query di aggiornamento conferma che il valore viene aggiornato nel documento abbinato.
Visualizziamo anche il documento aggiornato eseguendo la query Trova.
Esempio 5: MongoDB aggiorna il documento con l'operatore $ inc
Tutte le query di aggiornamento precedenti utilizzano l'operatore $ set per impostare i valori aggiornati nel documento. Ma il metodo update () ha vari operatori durante l'aggiornamento di un documento. Qui, utilizziamo l'operatore $ inc per aggiornare il documento. L'operatore $ inc utilizza il valore aumentato rispetto alla chiave specificata. Diamo una domanda per aggiornare il documento con l'operatore $ inc. Il metodo update () corrisponde al documento il cui campo "prodotto" ha il valore "legami" e quindi ha aumentato il valore del campo "qty" a "50" con l'operatore "$ inc".
db.Prodotti.Aggiornamento (Product: "Ties", $ inc: Qty: 50)
Il documento è abbinato e il valore viene modificato correttamente come mostrato nella seguente immagine:
Il documento abbinato viene quindi cercato specificamente per vedere il nuovo valore incrementato che viene aggiornato come mostrato nella seguente immagine di output:
Esempio 6: MongoDB aggiorna il documento con $ Rename Operator
Ora utilizziamo il metodo $ Rename Operator del metodo Update (). Questo operatore aggiorna il titolo del campo dal nome corrente del campo specificato. Diamo la seguente query del metodo update (). Il metodo update () prende la condizione di trovare il documento del campo "prodotto" il cui valore è "legami". Quando viene trovato il documento, il metodo Update () impiega $ Rename Operator. L'operatore $ Rename prende il nome del campo "Stato" che deve essere rinominato insieme al nome modificato del campo "Stock".
db.Dipendente.aggiornamento ("prodotto": "legami",
$ rinomina: "status": "stock")
Il campo "stock" modificato viene aggiornato nel documento specificato nel risultato della query precedente.
Il documento abbinato viene quindi cercato specificando la query che visualizza il nome del campo aggiornato.
Esempio 7: MongoDB aggiorna il documento con l'operatore $ Unset
Successivamente, prendiamo un esempio di un operatore $ Unset che viene utilizzato per eliminare i campi specificati dal documento. Nella seguente illustrazione, utilizziamo l'operatore $ Unset nel metodo Update () che rimuove i campi "Dimensione" e "Qty" dal documento il cui "_id" è "4".
db.prodotti.aggiornamento(
_id: 4,
$ UNSET: size: "", qty: ""
Il documento abbinato viene aggiornato dopo l'esecuzione della precedente query non su.
Si può vedere nella shell che il documento abbinato è stato rimosso con i campi "dimensioni" e "qty" nont.
Conclusione
Questa guida di MongoDB esplora il metodo Update () utilizzato per aggiornare il documento. Possiamo aggiornare i vari campi invocando il metodo update () nella query. Abbiamo anche introdotto il metodo UpdateOne () che aggiorna solo un singolo documento. Possiamo utilizzare il metodo UpdateMany () se dobbiamo aggiornare più documenti alla volta. Inoltre, abbiamo utilizzato i diversi operatori del metodo update () per aggiornare il documento di conseguenza.