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): Geben Sie hier die Bildbeschreibung ein

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: Geben Sie hier die Bildbeschreibung ein

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: Geben Sie hier die Bildbeschreibung ein

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


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow