MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Как мога да направя условно търсене в pymongo?

Можете да използвате cond в $project или $expr в $match етап като:

collectionName.aggregate([
  {
    $match: {
      $expr: {
        $cond: {
          if: {
            $gt: [
              "$audiPrice",
              null
            ]
          },
          then: {
            $and: [
              {
                $gte: [
                  "$audiPrice",
                  price * 0.25
                ]
              },
              {
                $lte: [
                  "$audiPrice",
                  price * 1.75
                ]
              }
            ]
          },
          else: {
            $and: [
              {
                $gte: [
                  "$price",
                  price * 0.25
                ]
              },
              {
                $lte: [
                  "$price",
                  price * 1.75
                ]
              }
            ]
          }
        }
      }
    }
  }
])

Тук първо проверявате дали полето audiPrice не е нула, след което извършвате съпоставяне на този ключ, друго на ключ за цена.




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. 4 начина за изтриване на документ в MongoDB

  2. Как да направя множество съединения между две колекции в mongodb с помощта на ламбда функция?

  3. Reg:mongo db грешен изход според заявката

  4. Премахнете обект от вложен масив с $pull и $[identifier] (mongoDB 3.6)

  5. Времето за изчакване на избора на сървър изтече след 10 000 ms - Compass не може да се свърже към mongoDB на localhost