简体   繁体   中英

How query using mongoose in document with nested multiple array objects?

I have below like multiple documents in mongodb

{
   "measure": "revenue",
    "dimensions": [{
        "name": "country",
        "value": "USA"
    }, {
        "name": "productfamily",
        "value": "Shoes"
    }, {
        "name": "devicetype",
        "value": "Mobile"
    }, {
        "name": "os",
        "value": "iOS"
    }]
}

I want to find document with all four dimensions values , i am trying with this

findOne({
   "measure": "revenue",
    "dimensions": [{
        "name": "country",
        "value": "USA"
    }, {
        "name": "productfamily",
        "value": "Shoes"
    }, {
        "name": "devicetype",
        "value": "Mobile"
    }, {
        "name": "os",
        "value": "iOS"
    }]
})

But it is not finding document. Please suggest how to query this.

Use $all operator.

db.collection.find({
  "measure": "revenue",
  "dimensions": {
    "$all": [
      {
        "name": "country",
        "value": "USA"
      },
      {
        "name": "productfamily",
        "value": "Shoes"
      },
      {
        "name": "devicetype",
        "value": "Mobile"
      },
      {
        "name": "os",
        "value": "iOS"
      }
    ]
  }
})

Sample Mongo Playground

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM