आप उस वाइल्डकार्ड $
. के साथ बहुत गहराई तक गए हैं . आप Fields
. में किसी आइटम के लिए मिलान करते हैं सरणी, ताकि आप उस पर पहुँच प्राप्त कर सकें:Fields.$
. यह एक्सप्रेशन आपके Fields
. में पहला मैच लौटाता है सरणी, ताकि आप Fields.$.Field
. द्वारा इसके फ़ील्ड तक पहुँच सकें या Fields.$.Result
।
अब, update
को अपडेट करते हैं :
db.test.update({
"Fields.Field": "Lot No"
}, {
$addToSet: {
"Fields.$.Rules": {
'item_name': "my_item_two",
'price':1
}
}
}, false, true);
कृपया ध्यान दें कि मैंने query
को छोटा कर दिया है क्योंकि यह आपकी अभिव्यक्ति के बराबर है।