从我读过的内容来看,不可能使用mongo
中的位置运算符$
来更新嵌套数组中的元素。 $
只能工作一个级别。我发现它是mongo 2.7
中的一个请求功能。Mongodb:如何更改嵌套的arrary的元素?
由于写入冲突,更新整个文档one level up
不是一个选项。例如,我需要修改特定奖励计划的'username'
。
其中一个想法是拉动,修改,并推动整个'reward_programs'
元素,但然后我会失去秩序。订单很重要。
审议本文件:
{
"_id:"0,
"firstname":"Tom",
"profiles" : [
{
"profile_name": "tom",
"reward_programs:[
{
'program_name':'American',
'username':'tomdoe',
},
{
'program_name':'Delta',
'username':'tomdoe',
}
]
}
]
}
你会如何去具体改变'program_name'=Delta
的'username'
?