javascript - Update key value where different key equals some value -


i have many documents (by unique toolname) following structure, in db test:

    {         "_id" : objectid("111111111111"),         "toolname" : "hammer",         "abilities" : [              {                 "foo" : "blue",                 "bar" : "beagle",                 "loe" : 0.65             },              {                 "foo" : "red",                 "bar" : "beagle",                 "loe" : 0.57             },              {                 "foo" : "red",                 "bar" : "fish",                 "loe" : 0.42             }         ]     } 

i can find document following query:

db.test.find({"abilities.bar":"beagle","abilities.foo":"red"}) 

what update loe 2 parameters set in find query above match. example - "abilities.bar":"beagle" , "abilities.foo":"red", update "loe" in object .99.

does mongo have built in function can set value of key key(s) in object equals value? or need create client side function return array index , update based on that? example:

some function(){...}  db.test.update({"abilities.bar":"beagle","abilities.foo":"red"} { $set: { "abilities[x].loe" : .99 } } ) 

use $elemmatch below :

db.collection.update({"abilities":{"$elemmatch":{"bar":"beagle","foo":"red"}}},                      {"$set":{"abilities.$.loe":0.99}}) 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -