sql >> Database teknologi >  >> NoSQL >> MongoDB

opdater dybt indlejret array mongodb

Du kan prøve 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 } }
)

Sørg for at caste dine id'er til ObjectId

Rediger:

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



  1. Dropper en Mongo-databasesamling i Meteor

  2. Søg efter element i et objekt i en matrix

  3. Indsæt nyt dokument ved hjælp af InsertOneAsync (.NET Driver 2.0)

  4. Er der en måde at vise tidsstempel i unix-format til ISODate?