sql >> Databáze >  >> NoSQL >> MongoDB

Jak mohu provést elemMatch uvnitř pole pomocí mongodb?

Myslím, že to můžete udělat pomocí agregací

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

Pracovní Hřiště Mongo




  1. Jak najít podřetězec v poli v Mongodb

  2. Jak zakázat protokolování java ovladače mongoDB?

  3. Rails Mongoid se nezdařilo ověřit – selhalo s chybou 13:není autorizován pro dotaz na my_db.my_collection

  4. Chyba sběrnice na Mongodb MongoClient.connect() pro Raspberry Pi ARM