{
questions: {
q1: "",
}
}
更新后的结果:
{
questions: {
q1: "",
q2: ""
}
}
我想在问题中添加q2
,而不要覆盖其中已经存在的内容(q1
)。
我发现的一种解决方案是获取整个文档,然后在后端对其进行修改,然后发送整个文档以替换当前文档。但这似乎效率很低,因为我在文档中还有其他字段。
是否有一个查询可以更有效地执行?我看了一下mongodb
文档,似乎没有找到能做到这一点的query
。
答案 0 :(得分:0)
正如turivishal所说,您可以像this一样使用$set
但是您也可以通过以下方式使用$addFields
:
db.collection.aggregate([
{
"$match": {
"questions.q1": "q1"
}
},
{
"$addFields": {
"questions.q2": "q2"
}
}
])
示例here
此外,请在您说Cannot create field 'q2' in element {questions: "q1"}
的地方阅读您的评论。看来您的原始架构与数据库中的架构不同。
您的模式表明questions
是具有字段q1
的对象。但是您的错误是questions
是字段,q1
是值。