私のオブジェクトは次のようになります。
Stats = {
name: 'filters'
variants: [
{
variant: 'A'
displayed: 123
actions: [
{
name: 'clicked'
triggered: 12
}
]
},
{
variant: 'B'
displayed: 123
actions: [
{
name: 'clicked'
triggered: 12
}
]
}
]
}
バリアントの配列があり、その中にアクションの配列があります。選択した とtriggered
のフィールドをインクリメントしたいと思います。私はmeteor.jsでそれを使用しています。variant
actions.name
私の検索クエリは次のようになります。
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
}})
位置 $ 演算子は、更新クエリ セレクターの最初の一致のプレースホルダーとして機能することを知っています。しかし、それを行う方法が他にあるかもしれませんか?