Prawdopodobnie możesz użyć operatora pozycyjnego aby zidentyfikować element tablicy:
Więc może coś takiego:
User.collection.update(
{ :_id => user.id, :matches => BSON::ObjectId('4e40238dbc9f6ec5a6000eed') },
{ :$set => { 'alert.matches.$' => matches } }
)
Ale jak zauważa Sergio, trudno jest określić strukturę twoich dokumentów na podstawie ograniczonych informacji w twoim pytaniu.
Wygląda na to, że po mojej odpowiedzi pojawiło się więcej informacji i wygląda to tak:
{ :$set => { 'alerts.$.matches' => ... } }
jest tym, czego potrzebujesz. I musisz dołączyć :matches
w zapytaniu, aby $
ma do czego się odnieść.