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

MongoDB में किसी भी क्षेत्र के मूल्य को स्पष्ट रूप से नाम दिए बिना खोजना

सभी फ़ील्ड पर टेक्स्ट खोज करने के लिए, आपको पहले सभी फ़ील्ड पर टेक्स्ट इंडेक्स बनाना होगा।

जैसा कि मोंगोडब प्रलेखन इंगित करता है, "स्ट्रिंग सामग्री वाले सभी क्षेत्रों पर पाठ खोज की अनुमति देने के लिए, स्ट्रिंग सामग्री वाले सभी क्षेत्रों को अनुक्रमित करने के लिए वाइल्डकार्ड विनिर्देशक ($**) का उपयोग करें।"

यदि आप मोंगो खोल के अंदर काम कर रहे हैं (जिसे आप 'मोंगो' कहकर कमांड लाइन से निष्पादित करते हैं), तो आप इसे इस कमांड से कर सकते हैं, जहां 'संग्रह' उस डीबी में संग्रह का नाम है जिसका आप उपयोग करना चाहते हैं।

db.collection.createIndex({ "$**": "text" },{ name: "TextIndex" })

दूसरी वस्तु, यानी {name:"TextIndex"} , वैकल्पिक है...आपको वास्तव में अनुक्रमणिका को एक नाम देने की आवश्यकता नहीं है, क्योंकि प्रति संग्रह केवल एक पाठ अनुक्रमणिका हो सकती है (एक समय में...आप अनुक्रमणिका छोड़ सकते हैं और यदि आप चाहें तो नई अनुक्रमणिकाएँ बना सकते हैं)।

एक बार जब आप सभी क्षेत्रों पर एक टेक्स्ट इंडेक्स बना लेते हैं, तो आप निम्न क्वेरी ऑब्जेक्ट के साथ एक साधारण टेक्स्ट खोज कर सकते हैं:{ $text : { $search: <your string> } }

इसलिए, यदि आप एक जावास्क्रिप्ट फ़ंक्शन लिख रहे हैं तो आप कुछ ऐसा कर सकते हैं:

var cursor = db.collection(<collection_name>).find({ $text: { $search: <your string> } });

खोज को नियंत्रित करने के विभिन्न तरीकों के बारे में अधिक जानकारी के लिए, यहां टेक्स्ट सर्चिंग पर मोंगोडब दस्तावेज़ देखें



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. हैंडल न किया गया वादा अस्वीकृति:त्रुटि:URL विकृत, पार्स नहीं किया जा सकता

  2. जांचें कि क्या MongoDB अप्सर्ट ने एक इंसर्ट या अपडेट किया है

  3. Mongoskin के साथ अनियंत्रित बल्क इंसर्टिंग का उपयोग कैसे करें?

  4. MongoDB / उल्का / तैनात अनुप्रयोगों के लिए MONGO_URL निर्यात करें

  5. मोंगो जटिल छँटाई?