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

Hvordan kan jeg lave en betinget søgning i pymongo?

Du kan bruge cond i $project eller $expr i $match trin som:

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
                ]
              }
            ]
          }
        }
      }
    }
  }
])

Her tjekker du først, om feltet audiPrice ikke er null, og udfør derefter matchningen på den pågældende nøgle ellers på prisnøglen.




  1. MongoDb $addFields og $match

  2. Redis klient

  3. Opret _id på underdokumenter på mongoimport --jsonArray

  4. Kombination af flere kolonne unikke mongoose nodejs