Ich entwickle eine App in Express, die mongodb verwendet. Ich schrieb den Code, um die Daten einzufügen und zu aktualisieren, indem ich die Speichermethode nutze, die gut funktioniert.Aktualisieren bestimmter Felder nur mit save-Methode in mongodb
Arbeits Code
dbconnect.collection('profiles').save(data, function (err, result) {
if (err)
return res.send({ success: false, message: "Error saving into database" });
result = JSON.parse(JSON.stringify(result));
if (_.isEmpty(result) || !result.ok)
return res.send({ success: false, message: "Unidentified error." })
return res.send({ success: true });
});
Wenn ich die Daten aktualisieren, das gesamte Dokument wird immer aktualisiert. Ja wie gesagt. Aber ich möchte ein Feld auslassen.
Lassen Sie sagen, meine Felder
username, password, email, postal_address
sind, wenn ich ohne _id passieren, schafft sie ein neues _id und das Dokument eingefügt wird.
Wenn der Benutzer versucht, die postal_address zu aktualisieren, löscht er das Kennwort, da die Daten kein Kennwortfeld enthalten. Es ist wie das ganze Dokument neu schreiben.
Da der Code geschrieben wurde und ich nicht den Code in zwei Teile als einfügen und aktualisieren möchte, bin ich auf der Suche nach einer Möglichkeit, einen Teil des Dokuments mit Hilfe von speichern zu aktualisieren.
Hoffe ich machte meine Frage klar.
Sie können 'update' auch mit der Option' upsert' verwenden, es wäre also nur ein Schritt. – Josh
Es wird erklärt [hier] (https://docs.mongodb.com/manual/reference/method/db.collection.update/#upsert-option) – Josh
Endlich habe ich meinen Code geteilt. Danke für Ihre Zeit und Update –