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

MongoDb फ़िल्टर ऐरे

यदि आप किसी तत्व को केवल एक सरणी में फ़िल्टर करते हैं, भले ही केवल एक तत्व मेल खाता हो, पूरी सरणी वापस कर दी जाएगी, और यदि कोई मेल नहीं है तो कुछ भी वापस नहीं किया जाएगा। इसलिए, आपको $unwind . का उपयोग करके अपनी सरणी को अलग-अलग दस्तावेज़ों में अलग करने की आवश्यकता है ऑपरेटर, और उसके बाद ही, $match . का उपयोग करके परिणामों को फ़िल्टर करने का प्रयास करें ।

निम्न क्वेरी आपकी समस्या का समाधान कर सकती है :

db.collection.aggregate([
  {"$unwind": "$product"},
  {"$match": {"product.name": "FirstWarehouseName1"}} // replace here with the name you want
])

काम करना mongoplayground

यदि हो सके तो बस एक टिप :आपको प्रत्येक उत्पाद को एक अलग दस्तावेज़ में संग्रहीत करना चाहिए, हालांकि MongoDB स्कीमा रहित है और हमें दस्तावेज़ के लगभग किसी भी प्रारूप की अनुमति देता है, याद रखें कि प्रत्येक दस्तावेज़ में एक नियमित संबंधपरक डेटाबेस में जानकारी की एक पंक्ति के बराबर होना चाहिए। अन्यथा, आपको ये समस्याएं और इसके अतिरिक्त, प्रदर्शन संबंधी समस्याएं होने लगेंगी।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. त्रुटि कोड 11000 और 11001 के बीच MongoDB अंतर

  2. Openshift पर MEAN साइट चलाते समय बहुत ही अजीब Mongoose/MongoDB समस्या

  3. डॉकर का उपयोग करके MongoDB को तैनात करना

  4. YCSB के साथ MongoDB को बेंचमार्क कैसे करें?

  5. Meteorjs में Mongo डेटा एन्क्रिप्ट करें