Вероятно можете да използвате позиционния оператор за идентифициране на елемента от масива:
Така че може би нещо като:
User.collection.update(
{ :_id => user.id, :matches => BSON::ObjectId('4e40238dbc9f6ec5a6000eed') },
{ :$set => { 'alert.matches.$' => matches } }
)
Но както отбелязва Серджо, трудно е да се разбере структурата на вашите документи въз основа на ограничената информация във вашия въпрос.
Изглежда, че след като отговорих, дойде повече информация и изглежда така:
{ :$set => { 'alerts.$.matches' => ... } }
е това, от което се нуждаете. И ще трябва да включите :matches
в заявката, така че $
има какво да се позовава.