MongoDB Go ड्राइवर के साथ नेस्टेड लॉजिकल क्वेरीज़
MongoDB क्वेरीज़ के आधार पर दस्तावेज़ों को फ़िल्टर करने के लिए अक्सर नेस्टेड लॉजिकल ऑपरेटर्स (AND/OR) के उपयोग की आवश्यकता होती है अनेक मानदंडों पर. Go MongoDB ड्राइवर में, bson.D और bson.M प्रकारों का उपयोग करके नेस्टेड तार्किक क्वेरीज़ का निर्माण किया जा सकता है।
नेस्टेड OR/AND क्वेरीज़ का निर्माण
एक बनाने के लिए नेस्टेड OR/AND क्वेरी, आपको बाहरी तार्किक ऑपरेटर (उदाहरण के लिए, $and) का प्रतिनिधित्व करने और bson.E तत्वों को पास करने के लिए bson.D प्रकार का उपयोग करने की आवश्यकता है यह। प्रत्येक bson.E तत्व एक फ़ील्ड-वैल्यू जोड़ी का प्रतिनिधित्व करता है, जहां फ़ील्ड का नाम तार्किक ऑपरेटर हो सकता है (उदाहरण के लिए, $or) और मान bson.D या bson.A (सरणी के लिए) हो सकता है।
नेस्टेड OR/AND क्वेरी का उदाहरण
MongoDB क्वेरी पर विचार करें:
{ "$and": { "p": 10, "$or": { "s": 30, "a": 1 } } }
MongoDB ड्राइवर का उपयोग करके Go में इस क्वेरी का प्रतिनिधित्व करने के लिए, आप निम्नलिखित कोड का उपयोग कर सकते हैं:
filter := bson.D{ {"p", 10}, {"$or", bson.A{ bson.D{{"s", 30}}, bson.D{{"a", 1}}, }}, }
इस उदाहरण में, bson.D बाहरी $and ऑपरेटर का प्रतिनिधित्व करता है, और bson.A नेस्टेड $or ऑपरेटर का प्रतिनिधित्व करता है। $or के भीतर प्रत्येक bson.D एक उप-क्वेरी का प्रतिनिधित्व करता है।
नेस्टेड क्वेरीज़ के लिए bson.M का उपयोग करना
आप प्रतिनिधित्व करने के लिए bson.M प्रकार का भी उपयोग कर सकते हैं नेस्टेड क्वेरीज़. bson.M एक मानचित्र[स्ट्रिंग]इंटरफ़ेस{} है जिसमें फ़ील्ड नाम और उनके संबंधित मान शामिल हो सकते हैं। मान एक अन्य bson.M उदाहरण हो सकता है, जो एक नेस्टेड क्वेरी का प्रतिनिधित्व करता है। "पी": 10, "$या": bson.A{ bson.M{"s": 30}, bson.M{"a": 1}, }, }
सिफारिशेंfilter := bson.M{ "p": 10, "$or": bson.A{ bson.M{"s": 30}, bson.M{"a": 1}, }, }
एक तार्किक ऑपरेटर के भीतर एक सरणी का प्रतिनिधित्व करने के लिए, bson.A का उपयोग करें (उदाहरण के लिए, bson.A{bson.M{"foo" : 1}}).
$and डिफ़ॉल्ट लॉजिकल ऑपरेटर है, इसलिए इसे स्पष्ट रूप से इसमें शामिल करना आवश्यक नहीं है क्वेरी।अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3