私は次の文書を持っています:
{
"results" : [
{
"name" : "foo",
"score" : 10
},
{
"name" : "bar"
}
]
}
フィールドが存在する場合にのみ、score
フィールドに を掛けたい。10
ドット表記のみを使用:
{
$mul: {
'results.score': NumberInt(10)
}
}
エラーを返します:
Cannot create field 'score' in element {results: [ { name: "foo", score: 10 }, { name: "bar" } ]}
新しい配列フィルターを使用してみました:
{
$mul: {
'results.$[result].score': NumberInt(10)
}
}, {
arrayFilters: [{
'result.grade': {
$exists: true
}
}]
}
これも私にエラーを与えます:
No array filter found for identifier 'result' in path 'results.$[result].score'
すべてのドキュメントにスコアフィールドを設定してゼロに設定できることはわかっていますが、それは解決策にはなりませんが、スコアがないということはまだスコアがないことを意味し、スコアがあり、です0
。
- これはできますか?
- バージョン 3.6 より前のバージョンでこれを行うことはできますか?