MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Feld mit dem Wert eines anderen Felds im Dokument aktualisieren

Gute und schlechte Nachrichten hier.

Die schlechte Nachricht ist, dass Sie dies AFAIK nicht mit einem einzigen Aufruf von update() tun können - Mongo unterstützt keine Bezugnahme auf das aktuelle Objekt in update.

Eine gute Nachricht ist, dass es andere Möglichkeiten gibt, z. Sie können eine forEach-Schleife ausführen:

db.item.find(conditions...).snapshot().forEach( function (doc) {
  doc.field1 = doc.field2; 
  db.item.save(doc); 
});

Sie können forEach in der Admin-Shell ausführen (Befehl „mongo“) oder über einige der Methoden Ihres spezifischen Treibers (z. B. in PHP würde ich erwarten, dass es mit mongodb.execute() funktioniert, wie hier beschrieben:http:/ /www.php.net/manual/en/mongodb.execute.php)