2012-04-25 9 views
5

मैं इस तरह MongoDB में दस्तावेज़ है:शब्दकोश के अंदर शब्दकोश के साथ Pymongo क्वेरी?

{"ONE": {"TWO": {"THREE":"5"}}} 

मैं Pymongo find API का उपयोग कर MongoDB क्वेरी करना चाहते हैं, लेकिन यह काम नहीं कर रहा:

for value in dbaccess.find({"ONE":{"TWO":{"THREE":{"$gt":"0"}}}}): 
    print value 

कुछ भी नहीं है इसके बाद के संस्करण कोड के साथ मुद्रित हो रही है।

उत्तर

9

दो बातें:

  1. आप एक पूर्णांक के रूप में अपने दस्तावेज़ में 5 के इलाज के लिए चाहते हैं, दोहरे उद्धरण में यह जोड़ देना नहीं है।
  2. नेस्टेड दस्तावेजों क्वेरी करने के लिए उपयोग डॉट नोटेशन:

    dbaccess.find("ONE.TWO.THREE": {"$gt": 0})

+0

बहुत बढ़िया !!! बहुत बहुत धन्यवाद। एक और प्रश्न .... अगर मैं सभी मूल्यों का योग चाहता हूं ..... क्या हमारे पास इसे पाने का कोई तरीका है? उदाहरण के लिए ... यदि मेरे पास ऐसा एकाधिक दस्तावेज़ है और मेरा लक्ष्य सभी ONE.TWO.THREE मानों का योग प्राप्त करना है .... क्या इसे पिमोंगो एपीआई से प्राप्त करना संभव है? मुझे मिल सकता है या कोई अन्य मेरी मदद कर सकता है? – Gana

+0

चर्चा के समूह विधि को देखें [यहां] (http://api.mongodb.org/python/current/api/pymongo/collection.html?highlight=group#pymongo.collection.Collection.group)। – JohnnyHK

+0

एक बार फिर धन्यवाद। बस एक और क्यू .. :-) मेरे पास एक अजीब स्थिति है .. आपने "ONE.TWO.THREE" के रूप में पूछने का सुझाव दिया लेकिन कुछ दस्तावेज़ों में "TWO" कुछ और हो सकता है :-(.... मैंने कोशिश की reqx का उपयोग करें और दो के बजाय * दे रहा है लेकिन काम नहीं किया :-( – Gana