データベースに次のようなオブジェクトがあるとします。
{
_id: <...>,
arrayOfObjects: [
{
criteria: "one",
value: 5
},
{
criteria: "two",
value: 5
},
{
criteria: "three",
value: 5
},
{
criteria: "four",
value: 5
},
]
}
私がしたいのは、次のような更新を実行することです。
{
$inc: {
"arrayOfObjects.2.value" : -1
}
}
ただし、特定の要素のみに影響を与える必要があります。たとえば、{$or: [{criteria: "one"}, {criteria: "three"}]} のように、オブジェクトのコピーが有効期限の前に期限切れになる可能性があるため、配列インデックスに頼ることはできません。 update が実行されます (オブジェクトを配列に挿入、削除、再配置できます)。
これをやってのけることは可能ですか?これを行う最適な方法は何でしょうか?