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

मोंगोडब सरणी मिलान

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

db.test.find( {a: [1,2,3,4]} );

इसे अस्थायी संग्रह में डालने पर विचार करें, जैसे अस्थायी:

db.temp.save( {a: [1,2,3,4]} );

अब परीक्षण संग्रह में प्रत्येक दस्तावेज़ पर पुनरावृति करें और इसे अस्थायी रूप से 'ढूंढें', $all ऑपरेटर के साथ यह सुनिश्चित करने के लिए कि यह पूरी तरह से समाहित है, यानी, ऐसा कुछ करें:

foreach(doc in test)
{ db.temp.find( { a: { $all: doc.a } } ); }


यह निश्चित रूप से एक समाधान है! मुझे यकीन नहीं है कि मुझे कोई अन्य ऑपरेटर याद आ रहा है जो यह काम कर सकता है।



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. इसे मोंगोडब में सहेजने के लिए ब्लॉब से बाइनरी में कनवर्ट करना

  2. MongoDB स्पाइडरमोन्की UTF-8 को नहीं समझता है

  3. फ़िल्टर के साथ Mongo दिनांक सीमा अनुक्रमणिका

  4. मोंगो क्वेरी में आईएसओ तिथि को टाइमस्टैम्प में बदलें

  5. गोलंग में मोंगोडीबी में एकाधिक विशेषता मानों की जांच करके आइटम सूची पुनर्प्राप्त करें