Ist es möglich, einen selbstreferentiellen Wert in einer Aktualisierungsabfrage in MongoDB zu erhalten?
Nein, dieses Update ist mit dem normalen Abfrage-/Aktualisierungssystem nicht möglich.
Soweit ich weiß, kann nur MapReduce verwendet werden, während serverseitig in MongoDB.
Map/Reduce wird verwendet, um vorhandene Daten zusammenzufassen und diese Daten in einer separaten Sammlung/Tabelle auszugeben. Map/Reduce soll keine bestehenden Daten aktualisieren.
Um dieses Update mit MongoDB ausführen zu können, müssen Sie eine einfache for
-Schleife über die gesamte Sammlung ausführen und diese jeweils aktualisieren. Sie können dies von jedem der Treiber einschließlich der Shell tun.
db.table.find().forEach(function(x) {
var newValue = x.column2 + x.column3; // Add column2 & 3
db.table.update({_id: x._id}, { $set: { column1: newValue } }); // Set the value on column1
})
Gute Antwort. Kleiner Hinweis: Sie sollten eine abschließende Paranthese am Ende Ihres Beispiels hinzufügen, um es zu einer funktionierenden Aussage zu machen. –