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

Aggiorna l'array con più condizioni in mongodb

Quando ci sono più condizioni da abbinare all'interno di un array, allora il .Dot la notazione non funziona con la query di aggiornamento.

Devi usare $elemMatch per far corrispondere esattamente due campi all'interno di un array

db.getCollection('test').updateOne(
  {
    "_id": ObjectId("5b673f525ef92ec6ef16504e"),
    "events": { "$elemMatch": { "name": "Winner", "map": 2 }}
  },
  {
    "$push": { "events.$.something": { "something": "test" }}
  }
)