MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

mise à jour de la requête mongodb sélectionner les champs imbriqués

Vous pouvez utiliser la requête ci-dessous

db.getCollection("test").updateOne(
  {
    "_id": ObjectId("5cd26a886458720f7a66a3b8"),
    "calendar.calendar": {
      "$elemMatch": {
        "_id": ObjectId("5cd26a886458720f7a66a413"),
        "rooms._id": ObjectId("5cd26a886458720f7a66a415")
      }
    }
  },
  { "$set": { "calendar.calendar.$[outer].rooms.$[inner].price": "100000" } },
  {
    "arrayFilters": [
      { "outer._id": ObjectId("5cd26a886458720f7a66a413") },
      { "inner._id": ObjectId("5cd26a886458720f7a66a415") }
    ]
  }
)

Je mettrai à jour ma réponse avec quelques explications par la suite