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

संबंधित पुराने तत्व का उपयोग करके एम्बेडेड सरणी तत्वों को अपडेट करने के लिए $सेट और डॉट नोटेशन का उपयोग कैसे करें?

यदि फ़ील्ड किसी सरणी का सदस्य है, तो उसे चुनकर आप उन सभी का चयन कर रहे हैं।

{ar :[{"a" : 1}, {"a" : 2}]}

"$ar.a" = [1 ,2]

साथ ही आप अपडेट ऑपरेटरों को एकत्रीकरण के साथ नहीं मिला सकते हैं, आप $sites.$.energy_consumption जैसी चीज़ों का उपयोग नहीं कर सकते हैं , यदि आप एकत्रीकरण कर रहे हैं तो आपको केवल $match अपवाद के साथ, कुल ऑपरेटरों का उपयोग करना होगा चरण जहां आप क्वेरी ऑपरेटरों का उपयोग कर सकते हैं।

प्रश्न

  • $setField . का उपयोग करके आप से थोड़ा अलग वैकल्पिक समाधान
  • मुझे लगता है कि यह तेज़ होगा, लेकिन शायद थोड़ा अंतर होगा
  • जावास्क्रिप्ट का उपयोग करने की कोई आवश्यकता नहीं है, यह धीमा हो जाएगा
  • यह है>=MongoDB 5 समाधान, $setField नया ऑपरेटर है

यहां टेस्ट कोड

aggregate(
[{"$set":
  {"sites":
   {"$map":
    {"input":"$sites",
     "in":
     {"$setField":
      {"field":"new_field",
       "input":"$$this",
       "value":"$$this.energy_consumption"}}}}}}]
)


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. मैं नेवला में एक सरणी में प्रत्येक मान के लिए एक स्ट्रिंग कैसे तैयार कर सकता हूँ?

  2. mongodb जाँच करें कि क्या बिंदु बहुभुज में है

  3. क्या मुझे सीधे मोंगोडब तक पहुंचना चाहिए?

  4. MongoDB को जोड़ना और बनाना SQL का उपयोग करके जुड़ता है:भाग 2

  5. एमजीओ में टेक्स्ट सर्च कैसे करें?