我有一个类似的文件:
{
"_id": "1000",
"answer_count": 0,
"answer_order": 0,
"fields": [{
"name": "client_name",
"id": "com28",
"title": "Client",
"required": true,
"instruct": "",
"dateType": "text"
}, {
"name": "id_radio",
"id": "com26",
"title": "hobby",
"required": false,
"instruct": "",
"value": [{
"name": "Please select",
"selected": true,
"lid": "-1",
"defaultTip": true
}, {
"name": "option1",
"selected": false,
"lid": "0"
}, {
"name": "option2",
"selected": false,
"lid": "1"
}, {
"name": "option3",
"selected": false,
"lid": "2"
}]
}]
}
我试试:
db.survey_stat.update({
"fields.id" : "com26",
"fields.value.name":"option1"
},
{
"$inc":{
"fields.0.value.$.selected_count":1
}
})
但它不会更新任何字段。如何在数组中包含特定字段?
答案 0 :(得分:0)
要更改的fields.id: "com26"
数组条目为fields.1
而不是fields.0
。这意味着您正在尝试更改fields
数组的错误条目。
不幸的是,$-placeholder只能在字段路径中使用一次。当你有两个嵌套数组时,它不会起作用。关于此问题有an open bugtracker ticket。唯一的解决方法是检索并替换嵌套字段发生的整个数组条目。