sql >> Database >  >> NoSQL >> MongoDB

Hoe kan ik voorwaardelijk zoeken in pymongo?

U kunt cond . gebruiken in $project of $expr in $match podium als:

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

Hier controleer je eerst of het veld audiPrice niet null is en voer dan de match uit op die sleutel anders op prijssleutel.




  1. Hoe krijg ik alle overeenkomende items uit een reeks objecten in MongoDB?

  2. Redis-interacties in javascript stoppen met Sinon

  3. SignalR kan geen verbinding maken met Azure Redis op SSL

  4. Node.js Mongoose.js-tekenreeks naar ObjectId-functie