Ricerca…


Sintassi

  • {$ set: {<field1>: <valore1>, <campo2>: <valore2>, ...}}

Parametri

parametri Senso
nomeCampo Il campo verrà aggiornato: { nome : "Tom"}
targetVaule Il valore sarà assegnato al campo: {nome: "Tom" }

Osservazioni

Riferimento per $ set operator: $ impostato sul sito ufficiale

$ imposta l'operatore per aggiornare i campi specificati nei documenti

I.Overview

Una differenza significativa tra MongoDB e RDBMS è che MongoDB ha molti tipi di operatori. Uno di questi è l'operatore di aggiornamento, che viene utilizzato nelle istruzioni di aggiornamento.

II. Cosa succede se non usiamo gli operatori di aggiornamento?

Supponiamo di avere una collezione di studenti per memorizzare le informazioni degli studenti (vista tabella): inserisci la descrizione dell'immagine qui

Un giorno ottieni un lavoro che deve cambiare il sesso di Tom da "M" a "F". È facile, vero? Quindi scrivi qui sotto una dichiarazione molto rapidamente basata sulla tua esperienza RDBMS:

db.student.update(
    {name: 'Tom'}, // query criteria
    {sex: 'F'} // update action
);

Vediamo qual è il risultato: inserisci la descrizione dell'immagine qui

Abbiamo perso l'età e il nome di Tom! Da questo esempio, possiamo sapere che l'intero documento verrà sovrascritto se non ci sono operatori di aggiornamento nell'istruzione di aggiornamento. Questo è il comportamento predefinito di MongoDB.

III. $ Imposta operatore

Se vogliamo modificare solo il campo "sesso" nel documento di Tom, possiamo usare $set per specificare quali campi vogliamo aggiornare:

db.student.update(
    {name: 'Tom'}, // query criteria
    {$set: {sex: 'F'}} // update action
);

Il valore di $set è un oggetto, i suoi campi rappresentano i campi che si desidera aggiornare nei documenti e i valori di questi campi sono i valori di destinazione.

Quindi, il risultato è corretto ora: inserisci la descrizione dell'immagine qui

Inoltre, se vuoi cambiare sia 'sesso' che 'età' allo stesso tempo, puoi aggiungerli a $set :

db.student.update(
    {name: 'Tom'}, // query criteria
    {$set: {sex: 'F', age: 40}} // update action
);


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow