Node.js MongoDB- Update
Dokument aktualisieren
Sie können einen Datensatz oder ein Dokument, wie es in MongoDB genannt wird, mithilfe der updateOne()
Methode aktualisieren.
Der erste Parameter der updateOne()
Methode ist ein Abfrageobjekt, das definiert, welches Dokument aktualisiert werden soll.
Hinweis: Wenn die Abfrage mehr als einen Datensatz findet, wird nur das erste Vorkommen aktualisiert.
Der zweite Parameter ist ein Objekt, das die neuen Werte des Dokuments definiert.
Beispiel
Aktualisieren Sie das Dokument mit der Adresse "Valley 345" auf name="Mickey" und address="Canyon 123":
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myquery = { address: "Valley 345" };
var newvalues = {
$set: {name:
"Mickey", address: "Canyon 123" } };
dbo.collection("customers").updateOne(myquery,
newvalues, function(err, res) {
if (err) throw err;
console.log("1 document updated");
db.close();
});
});
Speichern Sie den obigen Code in einer Datei namens "demo_update_one.js" und führen Sie die Datei aus:
Führen Sie "demo_update_one.js" aus
C:\Users\Your Name>node demo_update_one.js
Was Ihnen dieses Ergebnis geben wird:
1 document updated
Nur bestimmte Felder aktualisieren
Bei Verwendung des $set
Operators werden nur die angegebenen Felder aktualisiert:
Beispiel
Aktualisieren Sie die Adresse von „Valley 345“ auf „Canyon 123“:
...
var myquery = { address: "Valley 345" };
var newvalues
= { $set: { address: "Canyon 123" } };
dbo.collection("customers").updateOne(myquery,
newvalues, function(err, res) {
...
Aktualisieren Sie viele Dokumente
Verwenden Sie die Methode , um alle Dokumente zu aktualisieren , die die Kriterien der Abfrage erfüllen .updateMany()
Beispiel
Aktualisieren Sie alle Dokumente, bei denen der Name mit dem Buchstaben "S" beginnt:
var MongoClient = require('mongodb').MongoClient;
var url = "mongodb://127.0.0.1:27017/";
MongoClient.connect(url, function(err, db) {
if (err) throw err;
var dbo = db.db("mydb");
var myquery = { address: /^S/ };
var newvalues = {$set: {name:
"Minnie"} };
dbo.collection("customers").updateMany(myquery, newvalues, function(err,
res) {
if (err) throw err;
console.log(res.result.nModified + " document(s) updated");
db.close();
});
});
Speichern Sie den obigen Code in einer Datei namens "demo_update_many.js" und führen Sie die Datei aus:
Führen Sie "demo_update_many.js" aus
C:\Users\Your Name>node demo_update_many.js
Was Ihnen dieses Ergebnis geben wird:
2 document(s) updated
Das Ergebnisobjekt
Die Methoden updateOne()
und
updateMany()
geben ein Objekt zurück, das Informationen darüber enthält, wie sich die Ausführung auf die Datenbank ausgewirkt hat.
Die meisten Informationen sind nicht wichtig zu verstehen, aber ein Objekt innerhalb des Objekts heißt "Ergebnis", das uns sagt, ob die Ausführung in Ordnung war und wie viele Dokumente betroffen waren.
Das Ergebnisobjekt sieht folgendermaßen aus:
{ n: 1, nModified: 2, ok: 1 }
Mit diesem Objekt können Sie die Anzahl der aktualisierten Dokumente zurückgeben:
Beispiel
Geben Sie die Anzahl der aktualisierten Dokumente zurück:
console.log(res.result.nModified);
Was zu diesem Ergebnis führen wird:
2