sql >> Databáze >  >> NoSQL >> MongoDB

Použijte $cond v rámci $match v agregaci mongoDB

Jen musíte trochu přeformulovat logiku.

{ $match: { $expr: {
    $or: [
        { $and: [
            { $eq: [ "$id", 1206 ] },
            { $eq: [ "$field1", 0 ] }
        ]},
        { $and: [
            { $ne: [ "$id", 1206 ] },
            { $eq: [ "$field1", 1545001200 ] }
        ]},
    ],
}}}

Logicky jsou tyto dva výroky ekvivalentní:

  • Přiřaďte dokument zaškrtnutím field1 == 0 if id == 1206 , jinak přiřaďte dokument zaškrtnutím field1 == 1545001200
  • Odpovídají dokumentu, pokud buď (id == 1206 a field1 == 0 ) nebo (id != 1206 a field1 == 1545001200 ).


  1. jak čtete všechny bajty, které přicházejí na tcp připojení?

  2. Jak mám uložit pole v redis?

  3. Redis lua, kdy to opravdu použít?

  4. Získání MongoDB v Linuxu pro poslech vzdálených připojení