MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

aktualisiere das tief verschachtelte Array mongodb

Sie können es mit mongodb 3.6 arrayFilters versuchen

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

Stellen Sie sicher, dass Sie Ihre IDs in ObjectId umwandeln

Bearbeiten:

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