नए आइटम के लिए
db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment,"price":initial_share_price}}})
मौजूदा आइटम अपडेट करने के लिए यह मानते हुए कि आप आवंटन अद्यतन कर रहे हैं। आपको क्वेरी में संदर्भित सरणी मान के साथ स्थितीय ऑपरेटर ($) का उपयोग करने की आवश्यकता है।
db.cmpe285.update({"username":username, "stocks.name":stock_symbol}, {"$set": {"stocks.$.count":allotment2}})
आइटम ऊपर करने के लिए , यह एक 2 कदम प्रक्रिया है। आपको पहले क्वेरी को उसी तरह चलाने की आवश्यकता होगी जैसे आप ऊपर दिए गए मौजूदा आइटम को अपडेट करने के लिए करते हैं और उपरोक्त क्वेरी से लिखित परिणाम प्रतिक्रिया का निरीक्षण करते हैं और संशोधित गणना की जांच करते हैं। यदि संशोधित गणना 0 है, तो इसका मतलब है कि हमें अपसेट करने की आवश्यकता है और फिर आप इसे नए आइटम जोड़ने के मामले में ही करेंगे।
db.cmpe285.update({"username":username, "stocks.name":stock_symbol}, {"$set": {"stocks.$.count":allotment2}})
WriteResult देखें , अगर 0 के बराबर संशोधित किया गया है।
db.cmpe285.update({"username":username}, {"$push": {"stocks":{"name":stock_symbol,"count":allotment2,"price":initial_share_price}}})
अगर 1 के बराबर nmodified, upserting सफल हुआ।