ロジックを少し言い換えるだけです。
{ $match: { $expr: {
$or: [
{ $and: [
{ $eq: [ "$id", 1206 ] },
{ $eq: [ "$field1", 0 ] }
]},
{ $and: [
{ $ne: [ "$id", 1206 ] },
{ $eq: [ "$field1", 1545001200 ] }
]},
],
}}}
論理的には、2つのステートメントは同等です:
-
field1 == 0
をチェックしてドキュメントを照合しますid == 1206
の場合 、それ以外の場合は、field1 == 1545001200
をチェックしてドキュメントを照合します - 次のいずれかの場合にドキュメントを照合します(
id == 1206
およびfield1 == 0
)または(id != 1206
およびfield1 == 1545001200
。