Quando mongodb interroga un campo array fornisce un operatore posizionale $
che puoi usare per accedere a un elemento specifico in quell'array. Puoi utilizzare un operatore elemMatch per cercare nei campi all'interno di un array di oggetti.
Esempio:
db.myCollection.find({
_id: ObjectId("53b1a44350f148976b0b6044"),
myArray: {
$elemMatch: {key1: 'somevalue'}
}
}, {
$set:{
'myArray.$.key2': 'someOtherValue'
}
});
Vedere:http://docs.mongodb.org/manual/reference/ operatore/aggiornamento/posizionale/