Example 1: mongoose modify all elements in array
db.collection.update({
"_id": "password"
},
{
"$inc": {
"waitlist.$[].queue_place": -1
}
})
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: how to update data subdocument array in mongoose
db.getCollection('profilesservices').update({
_id: ObjectId("6037ad8ac8f713f1d31abe38"),
"workExperience._id": ObjectId("6037ad8ac8f713f1d31abe39")},
{ $set: { "workExperience.$.companyName": "bukalapak" }
})
}
"profileId" : "Sa4Dq9Xuw",
"photo" : "https://res.cloudinary.com/coding-street-art/image/upload/v1614261651/yxnvpazindsvz6lfst3m.jpg",
"gender" : "pria",
"birthDate" : ISODate("1997-03-19T17:00:00.000Z"),
"status" : "mahasiswa",
"nationality" : "indonesia",
"aboutMe" : null,
"resume" : "https://res.cloudinary.com/coding-street-art/raw/upload/v1614261653/bemkbknvhzknxffmala2.doc",
"skills" : [
"javascript",
"typescript",
"react",
"vuejs",
"express.js",
"nodejs"
],
"userId" : "602e8f43c0e227e6cb80bc56",
"workExperience" : [
{
"companyName" : "bukalapak",
"jobPosition" : "data entry",
"startDate" : ISODate("2015-02-14T17:00:00.000Z"),
"endDate" : ISODate("2017-07-27T17:00:00.000Z"),
"workInformation" : "",
"_id" : ObjectId("6037ad8ac8f713f1d31abe39")
},
{
"companyName" : "procar international finance",
"jobPosition" : "general affair",
"startDate" : ISODate("2015-02-14T17:00:00.000Z"),
"endDate" : ISODate("2017-07-27T17:00:00.000Z"),
"workInformation" : "",
"_id" : ObjectId("507f1f77bcf86cd799439011")
}
],
"education" : [
{
"institutionName" : "unindra",
"educationDegree" : "sarjana",
"fieldStudy" : "tehnik informatika",
"startDate" : ISODate("2015-03-24T17:00:00.000Z"),
"endDate" : ISODate("2020-03-24T17:00:00.000Z"),
"educationInformation" : "",
"_id" : ObjectId("6037ad8ac8f713f1d31abe3a")
}
],
"appreciation" : [],
"volunteerExperience" : [],
"__v" : 0
}
Example 4: mongoose update array in object
Person.findOneAndUpdate({_id: id},
{
"$set": {[`items.$[outer].${propertyName}`]: value}
},
{
"arrayFilters": [{ "outer.id": itemId }]
},
function(err, response) {
...
})