मेरे पास एक संग्रह है जहां कुछ ऑब्जेक्ट्स में एक कुंजी foo
है। अब मैं उन सभी ऑब्जेक्ट्स के लिए पूछताछ करने का प्रयास करता हूं जिनमें वास्तव में यह कुंजी है लेकिन विशिष्ट मान bar
के साथ नहीं। इसके लिए मैं निम्नलिखित क्वेरी का उपयोग करता हूं:मोंगोडीबी/पायमोंगो: एकाधिक मानदंडों को क्वेरी करना - अप्रत्याशित परिणाम
collection.find({'foo': {'$exists': True}, 'foo': {'$ne': 'bar'}})
मैंने सोचा कि दोनों मानदंड तार्किक और कनेक्ट के माध्यम से जुड़े हुए हैं। हालांकि, मुझे ऐसी ऑब्जेक्ट भी मिलती हैं जिनमें कुंजी foo
नहीं है। वास्तव में, मैं एक ही परिणाम प्राप्त जब मैं सिर्फ क्वेरी
collection.find({'foo': {'$ne': 'bar'}})
का उपयोग अन्य हंस, यदि मैं
collection.find({'foo': {'$exists': True}})
का उपयोग मैं सही ढंग से केवल foo
लेकिन obvisouly उन सभी के साथ वस्तुओं मिलता है, तो उनमें से कुछ के पास मूल्य bar
है।
मुझे अपना प्रारंभिक परिणाम प्राप्त करने के लिए मेरी क्वेरी कैसे तैयार करनी है? क्या कोई ऐसा आदेश है जिसमें एकाधिक मानदंडों का परीक्षण किया जाता है? क्या मैं स्पष्ट रूप से तार्किक और दोनों मानदंडों को निर्दिष्ट करता हूं?
यह एक बुनियादी pymongo क्वेरी का एक बड़ा उदाहरण है। मेरी इच्छा है कि यह पहले आया जब मैं "pymongo उदाहरण उदाहरण" googled: - \। +1 –
मुझे नहीं लगता कि Pymongo के लिए विशिष्ट उदाहरणों की आवश्यकता है क्योंकि वाक्यविन्यास अनिवार्य रूप से मोंगो खोल का उपयोग करते समय समान है। मैं _think_ मोंगो खोल थोड़ा और उदार है जब कीवर्ड और फ़ील्ड नामों के आसपास उद्धरण प्राप्त करने की बात आती है (उदाहरण के लिए, '{$ ne: 'bar'} 'को' {'$ ne': 'bar'} के साथ काम करना चाहिए ')। हो सकता है कि पूंजीकरण, उदाहरण के लिए, 'सत्य' भी मायने रखता है। – Christian