数据:
{
"_id" : ObjectId("50cda9741d41c81da6000002"),
"template_name" : "common_MH",
"role" : "MH",
"options" : [
{
"sections" : [
{
"tpl_option_name" : "test321",
"tpl_option_type" : "string",
"tpl_default_value" : "test321"
}
],
"tpl_section_name" : "Test"
}
]
}
我可以修改选项中的tpl_default_value。$。section。$。tpl_option_name ='test321'? 我已经尝试了太多次,但我无法解决。 请帮助我,谢谢。
答案 0 :(得分:0)
这是一个用于执行这些更新的错误架构,有一个用于多级位置运算符的JIRA,但尚未完成:https://jira.mongodb.org/browse/SERVER-831
理想情况下,您必须更新此客户端,然后以原子方式设置数组的该部分:
$section = {
"tpl_option_name" : "test321",
"tpl_option_type" : "string",
"tpl_default_value" : "test321"
};
db.col.update({}, {$set: {options.$.sections.1: $section}})
或者您需要更改架构。这些部分真的需要嵌入吗?我注意到你在顶层有一个tpl_section_name
,但是你在那里嵌套了部分,听起来更合乎逻辑,只有一个部分应该在那里。
该文档更容易更新。