sql >> Databasteknik >  >> NoSQL >> MongoDB

Hur kan jag göra elemMatch inuti array med mongodb?

Jag tror att du kan göra det med aggregering

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", [] ]
      }
    }
  }
])

Arbetande Mongo lekplats




  1. Redis benchmarking för hget- och hset-kommandon

  2. Fortsätt och spola - Doktrin och MongoDB

  3. Fjärranslutning till MongoDB-server med Codeigniter

  4. Hur man räknar objekt i listan med listor