आप शायद पोजिशनल ऑपरेटर का इस्तेमाल कर सकते हैं सरणी तत्व की पहचान करने के लिए:
तो शायद कुछ ऐसा:
User.collection.update(
{ :_id => user.id, :matches => BSON::ObjectId('4e40238dbc9f6ec5a6000eed') },
{ :$set => { 'alert.matches.$' => matches } }
)
लेकिन जैसा कि सर्जियो ने नोट किया है, आपके प्रश्न में सीमित जानकारी के आधार पर आपके दस्तावेज़ों की संरचना को छेड़ना मुश्किल है।
ऐसा लगता है कि मेरे उत्तर देने के बाद और जानकारी आई और ऐसा लगता है:
{ :$set => { 'alerts.$.matches' => ... } }
वह है जो आपको चाहिए। और आपको :matches
. को शामिल करना होगा क्वेरी में ताकि $
संदर्भित करने के लिए कुछ है।