python - Pymongo find if value has a datatype of NumberLong -


_id ": ObjectId (" 5368a4d583bcaff3629bf412 ")," बुक_आईडी ": नंबर लाँग (23302213)," serial_number ": '1122',}

यह इसलिए काम करता है क्योंकि सीरियल नंबर एक स्ट्रिंग है: < / P>

  find_one ({"serial_number": "1122"})  

हालांकि, यह नहीं है:

  find_one ({"Book_id": "23302213"})  

जाहिर है, क्योंकि book_id में NumberLong का डेटाटाइप है इस डेटाटाइप पर आधारित विधि कैसे निष्पादित कर सकता है?

======================================== ==========================

अपडेट:

फिर भी यह काम करने के लिए नहीं मिल सकता है, मैं केवल स्ट्रिंग मान पा सकते हैं किसी भी सलाह की बहुत सराहना की जाएगी।

आपको यह सुनिश्चित करना होगा कि आपके डेटा प्रकार मिलान कर रहे हैं MongoDB प्रकार के बारे में सख्त है। जब आप इसे निष्पादित करते हैं: book_id

  find_one ({"book_id": "23302213"})  

आप दस्तावेजों के लिए MongoDB पूछ रहे हैं < / Code> के बराबर "23302213" जैसा कि आप book_id प्रकार स्ट्रिंग के रूप में नहीं लिख रहे हैं, लेकिन प्रकार लंबे के रूप में क्वेरी का सम्मान करने की आवश्यकता है:

 <  find_one ({"book_id": long (23302213)})  

यदि, किसी कारण के लिए, आपके ऐड में स्ट्रिंग के रूप में आपके ऐप में यह काम भी करेगा:

  find_one ({"book_id": लंबे ("23302213"})  

अपडेट

बस इसे चेक किया गया

संग्रह में दस्तावेज़ (जैसा कि मोंगो शेल द्वारा दिखाया गया है):

 

कोड> {"_id": ObjectId ("536960b9f7e8090e3da4e594"), "n": नंबर लाँग (222333444)}

अजगर खोल का आउटपुट:

  & gt ; & gt; & gt; Collection.find_one ({"n": 222333444}) {u'_id ': ऑब्जेक्टआईडी (' 536960b9f7e8090e3da4e594 '), यू'एन': 222333444L}> gt; & gt; & gt; Collection.find_one ({"n": लंबे (222333444)}) {u'_id ': ऑब्जेक्टआईडी (' 536960b9f7e8090e3da4e594 '), यू'एन': 222333444L}  

Comments

Popular posts from this blog

asp.net - Procedure or function "Procedure name" expects a parameter "Param name" which was not supplied occurs rarely -

c# - The item with identity 'Id' already exists in the metadata collection. Parameter name: item -

c++ - Redefined variable in the other module -