0

I have this doc:

{
    '_id': 123456,
    'name': 'myName',
    'state':[{'user_id':1,user_state:1},{'user_id':11,user_state:2}]
}

I need to set one more filed ,'is_active':1, in state array object, where "_id" == 123456, and user_id == 11.

As a result it should look like this:

 {
     '_id': 123456,
     'name': 'myName',
     'state': [{'user_id':1,user_state:1},
               {'user_id':11,user_state:2,'is_active':1}]
}

But I am stuck with query:

{_id: new ObjectID(123456)}, {$set:{'state':???}}

Thanks in advance

marc_s
  • 732,580
  • 175
  • 1,330
  • 1,459
Serhiy
  • 1,893
  • 9
  • 30
  • 48

1 Answers1

1

Try this,

db.colection_name.update({_id: ObjectId("123456"), "state.user_id": 11}, { $set:{ "state.$.is_active" : 1 }})
Rahul Sharma
  • 346
  • 2
  • 12