sql >> データベース >  >> NoSQL >> MongoDB

mongodbを使用して配列内でelemMatchを実行するにはどうすればよいですか?

    アグリゲーションでできると思います

    db.collection.aggregate([
      {
        $match: {
          "BookingData.products": { "$exists": true }
        }
      },
      {
        $set: {
          "BookingData.products": {
            "$filter": {
              "input": "$BookingData.products",
              "cond": {
                $and: [
                  { $ne: [ "$$this.ProductID", undefined ] },
                  { $ne: [ "$$this._id", null ] },
                  { $ne: [ "$$this.IsDeliveryFailed", "Yes" ] }
                ]
              }
            }
          }
        }
      },
      {
        $match: {
          $expr: {
            $ne: [ "$BookingData.products", [] ]
          }
        }
      }
    ])
    

    作業中Mongo遊び場




    1. MongoDBのオブジェクト内で個別のキーを取得する方法

    2. Mongodbは集約フレームワークについて説明します

    3. サブクエリを使用したMongoDB$in

    4. 値またはデフォルト値によるMongoidクエリ