MongoDB Update() Documento con esempio

\

โšก Riepilogo intelligente

MongoDB Le operazioni sui documenti di tipo Update() modificano i record esistenti in una raccolta. Il metodo update() accetta una condizione per selezionare i documenti e un modificatore come $set per modificare i valori dei campi; l'opzione multi consente di aggiornare piรน documenti corrispondenti contemporaneamente.

  • ๏ธ Metodo update(): Il comando update() modifica i campi nei documenti che corrispondono a una determinata condizione.
  • ๐ŸŽฏ Condizioni della partita: Il primo argomento seleziona i documenti da aggiornare, ad esempio {Employeeid:1}.
  • ๐Ÿ”ง $ impostato Operare: L'operatore $set assegna un nuovo valore a un campo senza sostituire l'intero documento.
  • ๐Ÿ“š Aggiorna molte cose: L'opzione multi, o updateMany(), modifica tutti i documenti corrispondenti anzichรฉ uno solo.
  • โž• Upsert: L'opzione upsert inserisce un nuovo documento quando nessun documento esistente corrisponde alla condizione.
  • ๐Ÿ”„ Metodi moderni: updateOne(), updateMany() e replaceOne() sono le funzioni attualmente utilizzate per sostituire la funzione update(), ormai deprecata.

MongoDB Aggiorna() documento

Aggiornamenti di base dei documenti

MongoDB fornisce il comando update() per aggiornare i documenti di una collezione. Per aggiornare solo i documenti che desideri aggiornare, puoi aggiungere un criterio alla dichiarazione di aggiornamento in modo che vengano aggiornati solo i documenti selezionati.

I parametri di base nel comando rappresentano una condizione per la quale il documento deve essere aggiornato e la successiva รจ la modifica che deve essere eseguita.

L'esempio seguente mostra come farlo.

Passo 1) Emettere il comando di aggiornamento

Passo 2) Scegli la condizione che desideri utilizzare per decidere quale documento deve essere aggiornato. Nel nostro esempio, vogliamo aggiornare il documento che ha l'ID dipendente 22.

Passo 3) Utilizzare il comando set per modificare il nome del campo

Passo 4) Scegli quale nome campo desideri modificare e inserisci il nuovo valore di conseguenza.

db.Employee.update(
{"Employeeid" : 1},
{$set: { "EmployeeName" : "NewMartin"}});

Se il comando viene eseguito correttamente, verrร  visualizzato il seguente output

Produzione:

Aggiornamenti di base dei documenti

L'output mostra chiaramente che un record corrispondeva alla condizione e quindi il valore del campo pertinente รจ stato modificato.

MongoDB Aggiornanento OperaTors

L'operatore $set รจ il modo piรน comune per modificare un campo, ma MongoDB Fornisce diversi operatori di aggiornamento per esigenze diverse. รˆ possibile inserirli nel secondo argomento di update() insieme o al posto di $set:

  • $impostato: Imposta il valore di un campo, creandolo se non esiste.
  • $non impostato: Rimuove completamente un campo dal documento.
  • $inc: Aumenta o diminuisce un campo numerico di una determinata quantitร .
  • $mul: Moltiplica il valore di un campo numerico.
  • $rinomina: Rinomina un campo con un nuovo nome.
  • $spingere: Aggiunge un valore a un campo array.
  • $tirare: Rimuove i valori corrispondenti da un campo array.

Ciascun operatore agisce solo sui campi specificati, lasciando inalterato il resto del documento. รˆ possibile combinare diversi operatori in un'unica chiamata a update() per modificare piรน campi contemporaneamente, garantendo cosรฌ aggiornamenti precisi ed evitando la sovrascrittura di dati che si desidera conservare.

Aggiornamento di piรน valori

Per garantire che piรน documenti/in blocco vengano aggiornati contemporaneamente in MongoDB รจ necessario utilizzare l'opzione multi perchรฉ altrimenti, per impostazione predefinita, viene modificato solo un documento alla volta.

L'esempio seguente mostra come aggiornare molti documenti.

In questo esempio, troveremo prima il documento che ha l'ID dipendente come "1" e cambieremo il nome del dipendente da "Martin" a "NewMartin"

Passo 1) Emettere il comando di aggiornamento

Passo 2) Scegli la condizione che desideri utilizzare per decidere quale documento deve essere aggiornato. Nel nostro esempio, vogliamo che il documento che ha l'ID dipendente "1" venga aggiornato.

Passo 3) Scegli quali nomi di campo desideri modificare e inserisci il nuovo valore di conseguenza.

db.Employee.update
(
	{
		Employeeid : 1
	},
	{
		$set :
		{
			"EmployeeName" : "NewMartin",
			"Employeeid" : 22
		}
	}
)

Se il comando viene eseguito correttamente e se si esegue il file "Trova" comando per cercare il documento con ID dipendente come 22 vedrai il seguente output verrร  mostrato

Produzione:

Aggiornamento di piรน valori

L'output mostra chiaramente che un record corrispondeva alla condizione e quindi il valore del campo pertinente รจ stato modificato.

Come aggiornare un documento in MongoDB

Un upsert รจ una combinazione di aggiornamento e inserimento. Quando lo abiliti, MongoDB Aggiorna il documento che corrisponde alla condizione oppure inserisce un nuovo documento se non viene trovata alcuna corrispondenza. Questo รจ utile quando non si รจ certi che un record esista giร .

Per eseguire un'operazione di upsert, aggiungere l'opzione upsert impostata su true come terzo argomento della funzione update():

db.Employee.update(
  {Employeeid: 5},
  {$set: {EmployeeName: "Sofia"}},
  {upsert: true}
)

Ecco cosa succede:

  • Se esiste un documento con ID dipendente 5, MongoDB aggiorna il campo EmployeeName.
  • Se tale documento non esiste, MongoDB inserisce un nuovo documento con ID dipendente 5 e Nome dipendente โ€œSofiuna".

Gli upsert sono utili per contatori, impostazioni e qualsiasi flusso di lavoro in cui si desidera creare un record al primo utilizzo e aggiornarlo successivamente. Nel moderno MongoDBLo stesso comportamento รจ disponibile tramite updateOne() e updateMany() passando {upsert: true} nelle opzioni. Attenzione alla condizione, perchรฉ un filtro ampio combinato con upsert puรฒ creare documenti inaspettati.

updateOne() vs updateMany() vs replaceOne()

Il metodo update() รจ ora un comando obsoleto. Moderno MongoDB I conducenti suddividono il proprio comportamento in tre modalitร  piรน distinte. La tabella seguente le confronta:

Metodo Ciรฒ che fa Documenti interessati
aggiornamentoUno() Applica gli operatori di aggiornamento al primo documento corrispondente Un
aggiornaMolti() Applica gli operatori di aggiornamento a ogni documento corrispondente Molti
sostituisciUno() Sostituisce l'intero primo documento corrispondente con uno nuovo Un

Utilizza updateOne() per una singola modifica mirata, updateMany() al posto della vecchia opzione multi e replaceOne() quando desideri sostituire un intero documento anzichรฉ modificare i singoli campi. Questi metodi restituiscono un risultato chiaro che mostra quanti documenti corrispondono e quanti sono stati modificati, rendendoli piรน sicuri e piรน facili da sottoporre a debug rispetto a update().

DOMANDE FREQUENTI

Senza un operatore di aggiornamento come $set, MongoDB sostituisce l'intero documento corrispondente con l'oggetto fornito, eliminando tutti i campi non inclusi. Utilizzare sempre $set per modificare campi specifici mantenendoping il resto intatto.

Sรฌ. Se il campo specificato in $set non รจ presente nel documento corrispondente, MongoDB lo aggiunge con il valore specificato. Questo rende $set utile sia per aggiornare i campi esistenti che per aggiungerne di nuovi.

Utilizza findOneAndUpdate() con l'opzione returnDocument impostata su 'after'. In questo modo, la modifica viene applicata e il documento modificato viene restituito in un'unica operazione atomica, il che รจ utile quando hai bisogno dei nuovi valori immediatamente.

L'intelligenza artificiale puรฒ trasformare una semplice richiesta in un comando di aggiornamento o di aggiornamento multiplo con la condizione e l'operatore corretti, come $set o $inc, e spiegare ogni parte in modo che i principianti evitino errori.

Sรฌ. L'IA puรฒ segnalare un aggiornamento che omette $set e che sostituirebbe interi documenti, avvisare quando un filtro corrisponde a tutto e suggerire di testarlo su una copia prima di eseguirlo in produzione.

Riassumi questo post con: