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

mettre à jour mongodb tableau profondément imbriqué

Vous pouvez essayer avec mongodb 3.6 arrayFilters

db.collection.update(
  { "_id": ObjectId(5b56bd2f3e18580edc85af73) },
  { "$push": { "Cards.$[card].comments.$[comment].attachments": "2" } },
  { "arrayFilters": { "card.cardID": ObjectId("5b56c895d0a04836f71aa776"), "comment.commentId": 2 } }
)

Assurez-vous de convertir vos identifiants en ObjectId

Modifier :

db.collection.update(
  { "_id": ObjectId(5b56bd2f3e18580edc85af73) },
  { "$push": { "Cards.$[card].comments.$[comment].attachments": "2" } },
  { "arrayFilters": [
    { "card.cardID": ObjectId("5b56c895d0a04836f71aa776")},
    {"comment.commentId": 2 }
    ]
  }
)