我的目标是这样的:如何更新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