how to update value in array documents in mongoose and nodejs code example

Example 1: mongoose modify all elements in array

// Playground: https://mongoplayground.net/p/-TgGWwBd5l-
db.collection.update({
  "_id": "password"
},
{
  "$inc": {
    "waitlist.$[].queue_place": -1
  }
})

// Database
/*
[
  {
    "_id": "password",
    "waitlist": [
      {
        "_id": "adasd",
        "queue_place": 123
      },
      {
        "_id": "ada43sd",
        "queue_place": 2
      }
    ]
  }
]
*/

Example 2: updating an array of object in mongoose

Person.update(
   {
     _id: 5,
     grades: { $elemMatch: { grade: { $lte: 90 }, mean: { $gt: 80 } } }
   },
   { $set: { "grades.$.std" : 6 } }
)

Example 3: mongoose update array in object

Person.findOneAndUpdate({_id: id}, 
{ 
  "$set": {[`items.$[outer].${propertyName}`]: value} 
},
{ 
  "arrayFilters": [{ "outer.id": itemId }]
},
function(err, response) {
  ...
})

Tags:

Misc Example