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
);