changing field in a set object in mongodb -
i have document in mongo:
{     id: objectid,     list: [      {         id: internalobjectid1,         enabled: true     },     {         id: internalobjectid2,         enabled: false     }] }   i need change enabled field. how can it?
use positional $ operator. suppose have following document in collection list element value array of embedded documents:
{     "_id" : objectid("551be1a04db8a16ac729432e"),     "list" : [          {             "id" : objectid("54f43159c922ac0b4387ef9c"),             "enabled" : true         },          {             "id" : objectid("54f43159c922ac0b4387ef9d"),             "enabled" : false         }     ] }   the following update value of enabled field in embedded document id of 54f43159c922ac0b4387ef9d true:
db.collection.update(    {          "_id": objectid("551be1a04db8a16ac729432e"),         "list.id": objectid("54f43159c922ac0b4387ef9d")     },    {         "$set": {"list.$.enabled": true}     } )      
Comments
Post a Comment