MongoDB
Aktualisieren Sie die Operatoren
Suche…
Syntax
- {$ set: {<Feld1>: <Wert1>, <Feld2>: <Wert2>, ...}}
Parameter
| Parameter | Bedeutung |
|---|---|
| Feldname | Feld wird aktualisiert: { Name : 'Tom'} |
| targetVaule | Der Wert wird dem Feld zugewiesen: {name: 'Tom' } |
Bemerkungen
Referenz für $ set operator: $ set auf der offiziellen Website
$ set-Operator zum Aktualisieren von angegebenen Feldern in Dokumenten
I.Übersicht
Ein wesentlicher Unterschied zwischen MongoDB und RDBMS ist, dass MongoDB viele Arten von Operatoren hat. Einer von ihnen ist der Aktualisierungsoperator, der in Aktualisierungsanweisungen verwendet wird.
II. Was passiert, wenn wir keine Update-Operatoren verwenden?
Angenommen, wir haben eine Studentensammlung zum Speichern von Studentendaten (Tabellenansicht):
Eines Tages bekommen Sie einen Job, der Toms Geschlecht von "M" in "F" ändern muss. Das ist einfach, richtig? Sie schreiben also die folgende Anweisung sehr schnell, basierend auf Ihrer RDBMS-Erfahrung:
db.student.update(
{name: 'Tom'}, // query criteria
{sex: 'F'} // update action
);
Mal sehen, was das Ergebnis ist:
Wir haben Toms Alter und Namen verloren! In diesem Beispiel können wir wissen, dass das gesamte Dokument überschrieben wird, wenn in der Aktualisierungsanweisung kein Aktualisierungsoperator vorhanden ist. Dies ist das Standardverhalten von MongoDB.
III. $ Set Operator
Wenn wir nur das "Geschlecht" -Feld in Toms Dokument ändern möchten, können Sie mit $set angeben, welche Felder Sie aktualisieren möchten:
db.student.update(
{name: 'Tom'}, // query criteria
{$set: {sex: 'F'}} // update action
);
Der Wert von $set ist ein Objekt, seine Felder stehen für die Felder, die Sie in den Dokumenten aktualisieren möchten, und die Werte dieser Felder sind die Zielwerte.
Das Ergebnis ist also jetzt korrekt:
Wenn Sie "Geschlecht" und "Alter" gleichzeitig ändern möchten, können Sie sie an $set anhängen:
db.student.update(
{name: 'Tom'}, // query criteria
{$set: {sex: 'F', age: 40}} // update action
);