我的目標是這樣的:如何更新MongoDB中數組的子數組場
Stats = {
name: 'filters'
variants: [
{
variant: 'A'
displayed: 123
actions: [
{
name: 'clicked'
triggered: 12
}
]
},
{
variant: 'B'
displayed: 123
actions: [
{
name: 'clicked'
triggered: 12
}
]
}
]
}
我也有變種的數組,其內部數組的操作。我想爲選定的variant
和actions.name
增加triggered
字段。我在meteor.js中使用它。
我查找查詢看起來象下面這樣:
Stats.find({
name: 'filters',
variants: {
$elemMatch: {
variant: 'A',
'actions.name': 'clicked'
}}})
現在,如果對象存在,我想這樣做下面,但我知道這是行不通的。
Stats.update({
name: 'filters',
variants: {
$elemMatch: {
variant: 'A',
'actions.name': 'clicked'
}}},
{
$inc: {
'variants.$.actions.$.triggered': 1
}})
我知道位置$運營商充當更新查詢選擇的第一場比賽的佔位符。但也許你有任何其他想法如何做到這一點?
似乎並沒有成爲一個辦法做到這一點。昨天剛剛提出了一個類似的問題:http://stackoverflow.com/q/15236322/1259510 – JohnnyHK 2013-03-07 13:27:15