Váš pokus o dotaz používá stejný "klíč" dvakrát. V objektové struktuře to nemůžete udělat, protože v podstatě „přepisujete“ hodnotu stejného klíče. Skutečný uvažovaný dotaz je tedy pouze „druhou“ podmínkou pro tento klíč.
Pokud tedy chcete mít více podmínek pro stejný klíč, použijte $and
operátor:
db.collection.aggregate([
{ "$match": {
"$and": [
{ "genericParams.key": { "$exists": true, "$ne": "manual_funds_processed" } },
{ "genericParams.key": "third_sms_email_time" }
]
},
// other stages
})
Nebo protože všechny podmínky MongoDB jsou ve výchozím nastavení skutečně argumenty "a", můžete také zadat $eq
v tomto případě:
db.collection.aggregate([
{ "$match": {
"genericParams.key": {
"$ne": "manual_refund_processed",
"$eq": "third_sms_email_time"
}
}},
// other stages
])
Zde je třeba poznamenat, že na .aggregate()
není nic zvláštního zde samo o sobě, protože je to pouze základní část „dotazu“, která vykonává práci při výběru dokumentu.
Všimněte si také, že pokud je přítomna "pozitivní" podmínka ( $eq
) není opravdu nutné používat $exists
protože již testujete, že alespoň tento prvek musí odpovídat.