Você apenas tem que reformular a lógica um pouco.
{ $match: { $expr: {
$or: [
{ $and: [
{ $eq: [ "$id", 1206 ] },
{ $eq: [ "$field1", 0 ] }
]},
{ $and: [
{ $ne: [ "$id", 1206 ] },
{ $eq: [ "$field1", 1545001200 ] }
]},
],
}}}
Logicamente, as duas declarações são equivalentes:
- Faça a correspondência do documento marcando
field1 == 0
ifid == 1206
, caso contrário, corresponda ao documento marcandofield1 == 1545001200
- Corresponder ao documento se (
id == 1206
efield1 == 0
) ou (id != 1206
efield1 == 1545001200
).