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

Hvordan kan jeg lave elemMatch inde i array ved hjælp af mongodb?

Jeg tror, ​​du kan gøre det med sammenlægninger

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

Arbejd Mongo legeplads




  1. Tæl antal kommentarer i indlæg i Meteor

  2. Forbindelsen timeout efter opgradering af MongoDB.Driver fra 2.7.0 til 2.7.1

  3. Er det muligt at oprette flere cachebutikker ved hjælp af Springs cacheabstraktion med redis?

  4. Overvågning og sikring af MongoDB med ClusterControl Advisors