【发布时间】:2017-05-14 06:00:06
【问题描述】:
我正在尝试以动态方式在我的一个集合上创建一个列表,这是一个示例。
var user = mongoose.Schema({
"NAME": String,
"LAST": String,
"EMAIL": String,
"TasksUploaded": {}
})
我想在猫鼬中做的是用他已经上传的任务更新用户,最好的方法是什么?最后我想要的是:
{
"Name" : "John",
"Last" : "Doh",
"Email" : "john@doh.com",
"TasksUploaded" : {
"Task" : "Task A"
"Task" : "Task B"
"Task" : "Task H"
"Task" : "Task F"
"Task" : "Task C"
}
}
正如您所见,任务并不总是连续的,用户可以根据需要上传它们。
我对所有这些新的 NoSQL 和 MongoDB 东西都很陌生,所以如果您能说出最佳实践是什么,我将不胜感激。
这是我目前更新它的方式,但发生的情况是“级别”被替换了,你需要在文档中添加一个新行。
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);
})
}
【问题讨论】:
-
单反引号用于内联代码。不要将它们用于多行代码块。使用 4 个空格的缩进或三个反引号(AKA 代码围栏)
标签: node.js mongodb mongoose nosql