我試圖以動態方式在我的一個集合上創建一個列表,下面是一個示例。在MongoDB中動態添加具有相同密鑰名稱的新字段
var user = mongoose.Schema({
"NAME": String,
"LAST": String,
"EMAIL": String,
"TasksUploaded": {}
})
而且我想在貓鼬做的是更新他已經上傳任務的用戶,什麼是做到這一點的最好方法是什麼?我想在年底這是什麼:
{
"Name" : "John",
"Last" : "Doh",
"Email" : "[email protected]",
"TasksUploaded" : {
"Task" : "Task A"
"Task" : "Task B"
"Task" : "Task H"
"Task" : "Task F"
"Task" : "Task C"
}
}
正如你所看到的任務並不總是連續的,用戶可以上傳到他想要的。
所有這些新的NoSQL和MongoDB都是新的東西,所以如果你能告訴我最好的做法,我將不勝感激。
這是我目前如何更新它,但會發生什麼是「層」被取代,並且需要添加一個新行到docuemnt。
User.findOneAndUpdate({ _id: id}, { $set: { 'TasksUploaded.Task': req.body.task} }, { returnNewDocument: true, new: true }, function (err, result) {
if (err) {
console.log("Error saving task: " + err);
return;
}
console.log(result);
})
}
單一反引號是_inline_代碼。不要將它們用於多行代碼塊。可以使用4個空格縮進或三重反推(AKA代碼擊劍) –