I am trying to insert a new field to an array of objects
{
"_id": "543356fe0c9af6066e68970c",
"createdDate": "2014-10-06 07:59 pm",
"cancle": false,
"eventDate": "2014/12/12",
"eventstatus": true,
"location": "chennai",
"userId": "54310801e2659ecc3650100b",
"createdBy": "one",
"eventName": "tea ",
"__v": 0,
"friends": [
{
"userId": "54310814e2659ecc3650100c",
"userName": "two",
"phoneNumber": "22222222"
},
{
"userId": "54310945e2659ecc3650100d",
"userName": "three",
"phoneNumber": "33333333"
},
{
"userId": "54334def7e85de48638d1069",
"userName": "four",
"phoneNumber": "44444444"
}
]
}
I want to add "status" : 0 to all the objects inside friends array
I tried using addtoset, push and multiple ways, its adding as a new object in friends array.
db.events.update({},{$push:{ "friends" : {"status" : 0} }},false,true)
db.events.update({},{$addToSet : {'friends' : $each: [{ 'status':0}]}},false,true)
Please let me know what i am doing wrong. Thanks for your help
You can use this to update the arrays
db.events.find().forEach(function(e){
var t=e.friends;
t.forEach(function(e){
e.status=0
});
db.events.update({_id:e._id},{$set:{friends:t}})
})
Run this in your mongo terminal.
Don't know about problem with the code but I have the right code for it
var cursor = db.events.find();
cursor.forEach(function(item)
{
var friends = item.friends;
friends.forEach(function(elem)
{
elem['status'] = '....',
})
db.events.update({_id: item._id}, item);
});
It is working with mongo shell, but I don't know about javascript
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With