我试图以动态方式在我的一个集合上创建一个列表,下面是一个示例。在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代码击剑) –