sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kan jag göra en villkorlig sökning i pymongo?

Du kan använda cond i $project eller $expr i $match steg 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
                ]
              }
            ]
          }
        }
      }
    }
  }
])

Här kontrollerar du först om fältet audiPrice inte är null och utför sedan matchningen på den nyckeln annars på prisnyckeln.




  1. Redis-nycklar visas inte när du använder Cache-fasad i Laravel

  2. Gruppuppsättning efter varva ner och matcha

  3. Lagra datum i MongoDB utan att ta hänsyn till tidszonen

  4. bästa praxis för datasynkronisering i nodejs