我有以下結構:的MongoDB - 更新中的第二級陣列
document: {
'data': {
'field_1': 'blabla',
'field_2': 'blabla++',
'interesting_field': [
{
'f_1': 'abc',
'this_is_interesting': [
{
'a1': 'text',
'a2': 'other_text'
},
{
'a1': 'text 2',
'a2': 'text 3'
}
]
},
'etc': 'etc'
]
},
'somthing_boring': 'bla'
}
我需要做的就是更新所有「A2」從「interesting_field」域「this_is_interesting」(如果它們符合特定標準)。
要在1級陣列更新,我可以這樣做:
{
'_id': new ObjectId('5621020d78946ac20a000021'),
'data.interesting_field' : {
$elemMatch : {
'f_1' : 'abc'
}
}
},
{$set: {'data.interesting_field.$.something_to_update': 'something'}}
但是......看來我不能使用匹配水平2+陣列。任何想法如何做到這一點? (正在考慮mapReduce ...但不認爲我可以在更新查詢中使用它)。
你的文件是無效的。是'this_is_interesting'數組的子文檔嗎? – styvane
我的不好,固定... – zozo