MongoDB
Operatori di aggiornamento
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):
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
);
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:
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
);