MongoDB
 sql >> डेटाबेस >  >> NoSQL >> MongoDB

एमजीओ:किसी दस्तावेज़ में एक विशिष्ट सरणी को कैसे अपडेट करें

आपने इसे गलत तरीके से लिखा है। वेयरहाउस "आईडी" मान पर मिलान आपके कथन के "क्वेरी" भाग में है, न कि "अपडेट" अनुभाग में। जैसे, आप UpdateId . नहीं चाहते हैं संस्करण, लेकिन Update क्योंकि यह एक व्यापक क्वेरी चयन की अनुमति देता है:

query := bson.M{
    "_id": bson.ObjectIdHex(productId),
    "location.warehouse": bson.ObjectIdHex(warehouseId)
}

update := bson.M{
    "$set": bson.M{
        "location.$.count": 4
    }
}

err := coll.Update(query,update)

यह भी ध्यान रखें कि "dot notation" फॉर्म यहाँ ठीक है क्योंकि सरणी तत्व के लिए आपका चयनकर्ता सिर्फ एक विलक्षण क्षेत्र है। आपको आमतौर पर केवल $elemMatch की आवश्यकता होती है जब मैच को स्थापित करने के लिए सरणी में एक से अधिक फ़ील्ड हो।




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. नेवले में केवल विशिष्ट क्षेत्रों को आबाद करना

  2. जावा के साथ मोंगो - बैचसाइज के साथ क्वेरी ढूंढें

  3. mongodump विफल:खराब विकल्प:केवल एक संग्रह को stdout में डंप कर सकता है

  4. डॉकरफाइल से मोंगोडब कैसे शुरू करें

  5. GPath का उपयोग करके स्ट्रिंग में डॉट के साथ ग्रूवी ऑब्जेक्ट को गहराई से पार करने का तरीका