1
mongoDB
のaggregate
フレームワークの複雑なクエリを作成しようとしています。プログラムによって、$and
と$or
を追加するコンポーネントが必要です。Javascriptオブジェクトを参照して変更します。
これは私のオブジェクトの現在の構造である:
const inputObject = {
"details.blackBottom": { "in": ["A","B","C","D"] },
"details.blackTop": { "in": ["L","M"] },
"details.redBottom": { "in": ["A","B","C","D"] },
"details.redTop": { "in": ["L","M"] },
"details.greenBottom": { "in": ["A","B","C","D"] },
"details.greenTop": { "in": ["L","M"] }
}
はしかし、有用であるオブジェクトのために、私はそれが$or
と$and
の両方を使用するように、それを再公式化する必要があります。最終的な出力は次のようになります。$or
コンポーネントはBottom
とTop
によってグループ化されていることを
const outputObject = {
"$and": [
{
"$or" : [
{"details.blackBottom": { "in": ["A","B","C","D"] }},
{"details.redBottom": { "in": ["A","B","C","D"] }},
{"details.greenBottom": { "in": ["A","B","C","D"] }}
]
},
{
"$or" : [
{"details.blackTop": { "in": ["L","M"] } },
{"details.redTop": { "in": ["L","M"] } },
{"details.greenTop": { "in": ["L","M"] } }
]
}
]
}
注意してください。
inputObject
を希望のoutputObject
にするにはどうすればよいですか?