2016-03-02 8 views
5

मैं अनन्य अनुक्रमित फ़ील्ड में शून्य मानों को अनदेखा करके और आंशिक FilterExpression के आधार पर फ़िल्टर किए गए दस्तावेज़ों को अनदेखा कर एक क्षेत्र में अद्वितीय अनुक्रमणिका जोड़ना चाहता हूं।mongoDB 3.2 में अनन्य इंडेक्स शून्य मानों को अनदेखा कर रहा है

समस्या यह है कि स्पैस इंडेक्स का आंशिक सूचकांक के साथ उपयोग नहीं किया जा सकता है।

इसके अलावा, अद्वितीय इंडेक्स जोड़ना, इंडेक्स कुंजी फ़ील्ड में शून्य मान जोड़ता है और इसलिए पार्टिकलफिल्टरएक्सप्रेस में $ मौजूदा मानदंडों के आधार पर दस्तावेज़ों को अनदेखा नहीं किया जा सकता है।

क्या यह स्थिति इस स्थिति के आसपास होने के लिए मोंगोडीबी 3.2 में संभव है?

+0

क्या आपके मूल्य में शून्य मूल्य का कोई विशेष अर्थ है? यदि नहीं, तो आप हमेशा सभी शून्य मानों के लिए फ़ील्ड को अनसेट कर सकते हैं जो $ मौजूदा ऑपरेटर का उपयोग करना संभव बनाता है। – joao

+1

अद्वितीय इंडेक्स ऑटो जोड़ना शून्य क्षेत्र जोड़ता है ताकि हमारे पास अद्वितीय अनुक्रमित कुंजी फ़ील्ड के बिना दस्तावेज़ न हो। – Nikhil

उत्तर

3

हाँ, आप MongoDB 3.2 में आंशिक सूचकांक बना सकते हैं

कृपया देखें https://docs.mongodb.org/manual/core/index-partial/#index-type-partial

MongoDB विरल सूचकांक पर आंशिक सूचकांक के उपयोग की सलाह देते हैं। मैं आपको आंशिक सूचकांक के पक्ष में अपनी स्पैस इंडेक्स छोड़ने का सुझाव दूंगा।

+0

मुझे अनुक्रमण के लिए डेटा फ़िल्टर करने के लिए PartialFilterExpression का उपयोग करना है और किनारे पर अद्वितीय अनुक्रमणिका का उपयोग करना है। – Nikhil

+0

केवल एक चीज है कि मैं कुछ दस्तावेज़ों को अद्वितीय अनुक्रमित कुंजी फ़ील्ड नहीं रखना चाहता जो संभव नहीं लगता है या मुझे पता नहीं हो सकता है। – Nikhil

7

मैं इस जवाब को जोड़ रहा हूं क्योंकि मैं समाधान ढूंढ रहा था और उसे कोई नहीं मिला। यह वास्तव में इस सवाल का जवाब नहीं दे सकता है या हो सकता है, लेकिन मेरे जैसे बहुत से लोगों की मदद करेगा।

उदाहरण। यदि null के साथ मैदान houseName है और यह प्रकार string की है, समाधान इस

db.collectionName.createIndex(
    {name: 1, houseName: 1}, 
    {unique: true, partialFilterExpression: {houseName: {$type: "string"}}} 
); 

की तरह हो सकता है इस क्षेत्र houseName में null मूल्यों की उपेक्षा और अभी भी अद्वितीय होगा।

संबंधित मुद्दे