MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Użyj $cond w $match w agregacji mongoDB

Musisz tylko trochę przeformułować logikę.

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

Logicznie, te dwa stwierdzenia są równoważne:

  • Dopasuj dokument, zaznaczając field1 == 0 if id == 1206 , w przeciwnym razie dopasuj dokument, zaznaczając field1 == 1545001200
  • Dopasuj dokument, jeśli któryś z nich (id == 1206 i field1 == 0 ) lub (id != 1206 i field1 == 1545001200 ).


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Wyniki zapytania projekcji Mongo różnią się od testowania w aplikacji shell vs nodejs

  2. Jaki jest maksymalny rozmiar kolekcji w mongodb

  3. Mongodb - Ustawienie replikacji na poziomie bazy danych lub kolekcji

  4. Jak zaktualizować wiele elementów tablicy w mongodb

  5. Jak ustawić mongod.conf bind_ip z wieloma adresami ip?