sql >> Databasteknik >  >> NoSQL >> MongoDB

uppdatera djupt kapslad array mongodb

Du kan prova med 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 } }
)

Se till att du castar dina ID till ObjectId

Redigera:

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



  1. Fråga mongo för att upptäcka värdeförändringar i tidsserier

  2. Hur man filtrerar en samling baserat på varje matrisobjekt i ett dokumentfält i Mongodb

  3. Vilka aggregeringsmarkörmetoder stöds av Nodejs drivrutiner?

  4. MongoDB $golv