MongoDB обновляет вложенный массив

У меня простая структура в mongodb, с вложенным массивом. Как обновить искомое значение? Я видел примеры, использующие цифры примерно так:

invited.0.used: true 

но это не то, что я ищу, потому что я не знаю, где в моем списке этот элемент, так как я могу обновить массив, используемый для true, где ключ 84026702? Что делать, если у меня есть 100 массивов в приглашении, как обновить, где ключ 43938432?

 { "_id" : ObjectId("4fed972f61d69aa004000000"), "name" : "mezo", "invited" : [ { "key" : 40928710, "used" : false }, { "key" : 84026702, "used" : false } ] } 

 update({ invited.key : 84026702 }, { invited.$.used : true }); 

Это в основном делает то, что вы хотите, и должно хорошо работать. Посмотрите на позиционные операторы в mongodb: http://www.mongodb.org/display/DOCS/Updating#Updating-The%24positionaloperator

Или в PHP (по мере того, как ваш вопрос помечен) вы можете сделать:

 $mongo->collection->update(array('invited.key' => 84026702), array('invited.$.used' => true));