2013-01-02 6 views
9

मेरे पास एक इकाई में एक फ़ील्ड है, जो मौजूद होना चाहिए, लेकिन आवश्यक नहीं है। क्या मोंगो में इस बाधा को लागू करने का कोई तरीका है?एक मोंगो इंडेक्स कैसे बनाया जाए यह सुनिश्चित करने के लिए कि कोई फ़ील्ड कभी खाली/अनुपस्थित/खाली न हो?

मैं समझता हूँ कि मोंगो संग्रह स्कीमा-कर रहे हैं और केवल स्कीमा एक संग्रह है सकते हैं सूचकांक स्कीमा है।

!value && value !== 0 && value !== false 

उत्तर

6

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

चूंकि आपकी आवश्यकता गैर विशिष्ट कुंजी के लिए है, इसलिए मुझे नहीं लगता कि आपके पास MONGODB (v2.2) में इस बिंदु पर एक विकल्प है ताकि यह सुनिश्चित किया जा सके कि मूल्य सूचकांक कॉलम पर मौजूद होना चाहिए।

+3

V3.2 से यह अब संभव है। अधिक जानकारी के लिए देखें: https://docs.mongodb.com/manual/core/document-validation/ – pokkie

3

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

मुझे लगता है कि यदि आप इसके बजाय MongoDB पूछ आप के लिए यह देखने के लिए की तुलना में अपने अनुप्रयोग में डालने और अद्यतन आपरेशन में इस नियम को लागू करने की है।

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