I am trying to update multiple array element. I have data as follow:
{
"_id" : ObjectId("5b1623343aeefb2a8973e26a"),
"userId" : ObjectId("5acf0e0e6d57ed7a22d16739"),
"previous" : [
{
"providerId" : ObjectId("5acf304b995ea23a707b58e5"),
"_id" : ObjectId("5b1623343aeefb2a8973e286"),
"isBlocked" : true,
},
{
"providerId" : ObjectId("5acf304b995ea23a707b58e5"),
"_id" : ObjectId("5b1623343aeefb2a8973e285"),
"isBlocked" : true,
},
{
"providerId" : ObjectId("5acf304b995ea23a707b58e5"),
"_id" : ObjectId("5b1623343aeefb2a8973e284"),
"isBlocked" : true,
},
I need to update isBlocked Status as false where providerId's are same.
I already followed step given by @Neil in the post below:
How to Update Multiple Array Elements in mongodb
Here i am sharing my query:
db.getCollection("collectionName").update(
{"userId" : ObjectId("5acf0e0e6d57ed7a22d16739")},
{$set:{"previous.$[elem].isBlocked":false}},
{
arrayFilters:[{"elem.providerId":ObjectId("5acf304b995ea23a707b58e5")}]
}
)
If i am running this query mongo shell then it is working fine but it is not working in my code.
I am using MongoDB version 3.6
and my mongoose version is mongoose@4.13.9