Просто трябва малко да преформулирате логиката.
{ $match: { $expr: {
$or: [
{ $and: [
{ $eq: [ "$id", 1206 ] },
{ $eq: [ "$field1", 0 ] }
]},
{ $and: [
{ $ne: [ "$id", 1206 ] },
{ $eq: [ "$field1", 1545001200 ] }
]},
],
}}}
Логически двете твърдения са еквивалентни:
- Намерете съответствие с документа, като поставите отметка
field1 == 0
акоid == 1206
, в противен случай съпоставете документа, като проверитеfield1 == 1545001200
- Съвпада с документа, ако едно от двете (
id == 1206
иfield1 == 0
) или (id != 1206
иfield1 == 1545001200
).