Ich bin neu in node.js von Java Erfahrung. Ich habe eine Situation, die ich versuche, meinen Kopf einzuwickeln. Mein Stapel ist express.js, mongoose, ejs template. Hier ist mein Szenario: Ich habe ein Schema:Wie aktualisiert man ein bestimmtes Objekt in einem Array von Objekten in Node.js und Mongoose
var UserSchema = mongoose.Schema({
name: {
type: String,
index: true
},
password: {
type: String,
select: false
},
email: {
type: String
},
academic: [{
qualification: String,
institute: String,
from: String,
to: String,
about: String
}]
});
gibt es eine Liste von Akademikern. Ich möchte nur ein akademisches Objekt in dieser Liste aktualisieren. Wie würde ich darüber gehen?
router.post('/academic/schools/update', function (req, res) {
});
Ich übergebe die Werte aus EJS-Vorlage in die Route und die Werte in der req.Body. Wie würde ich in Knoten und Mungo das spezifische Objekt in der Route abfragen und dann seine Werte aktualisieren. Ich habe darüber nachgedacht, dem akademischen Objekt vielleicht eine ID hinzuzufügen, um verfolgen zu können, was ich aktualisieren soll.
verwenden Mongoose sollte automatisch zu jedem Objekt in dem Array Academics ein _id-Feld hinzufügen, da es sie als "Unterdokumente" behandelt. Sie können innerhalb des Akademiker-Arrays mit {'academics._id': _id} usw. abfragen und dann das übereinstimmende Dokument mit dem Positionsoperator {$ set: {'academics. $': YourUpdatedAcademic}} ... weitere Informationen aktualisieren https://docs.mongodb.com/manual/reference/operator/update/positional/ –
Ich verstehe, danke Mann –