sql >> Database teknologi >  >> NoSQL >> MongoDB

Brug $cond inden for $match i mongoDB-aggregering

Du skal bare omformulere logikken en lille smule.

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

Logisk set er de to udsagn ækvivalente:

  • Match dokumentet ved at markere field1 == 0 hvis id == 1206 , ellers match dokumentet ved at markere field1 == 1545001200
  • Match dokumentet, hvis enten (id == 1206 og field1 == 0 ) eller (id != 1206 og field1 == 1545001200 ).


  1. Flask mongoengine forbindes gennem uri

  2. Mongo - Ignorer ejendom fra at blive vedholdende

  3. Installation af Memcached på Ubuntu 16.04/18.04 med Nginx og PHP-7.3

  4. MongoDB-as-a-Service i Canada