2013-08-02 2 views
5

का उपयोग करके एक couchdb दस्तावेज़ मौजूद है या नहीं, यह जांचने का तरीका है कि क्या यह जांचने का कोई तरीका है कि क्या कोई विशेष आईडी वाला दस्तावेज़ सोफे पाइथन लाइब्रेरी का उपयोग करके सोफेडब में मौजूद है या नहीं।पाइथन

server = couchdb.Server('http://localhost:5984') 
db = server['tweets'] 
mytemp = db[MyDocId] 

और दस्तावेज़ मौजूद नहीं है, कोड एक "ResourceNotFound" अपवाद फेंकता है: यह है कि अगर मैं ऐसा करने लगती है।

मैं अपवाद पकड़ सकता हूं और अपवाद हैंडलिंग हिस्से में अपना कोड डाल सकता हूं, लेकिन यह बहुत गंदा लगता है।

मुझे आशा थी कि "if" कथन रखने का एक तरीका है जो जांचता है कि कोई विशेष कुंजी वाला दस्तावेज़ मौजूद है या नहीं।

धन्यवाद!

+0

संभावित डुप्लिकेट [कैसे जांचें कि कोई couchdb दस्तावेज़ मौजूद है (इसे पुनर्प्राप्त किए बिना)?] (Http://stackoverflow.com/questions/2831290/how-to-check-if-a-couchdb-document-exists -without-retrieving-it) –

+0

वास्तव में एक डुप्लिकेट नहीं है, क्योंकि मैं स्पष्ट रूप से सोफे पायथन लाइब्रेरी के बारे में पूछ रहा हूं, मैं वास्तव में उस पुस्तकालय के भीतर सिर http अनुरोध नहीं कर सकता (कम से कम एक साफ तरीके से नहीं)। मैंने अपना पोस्ट करने से पहले उस समाधान को पढ़ा था। वैसे भी मदद करने के लिए धन्यवाद! मैं प्रयास की सराहना करता हूं। – Oleg

उत्तर

9

डेटाबेस वस्तु की नकल करता है एपीआई dict के लिए, तो यह डेटाबेस में दस्तावेज़ों के लिए जाँच करने के लिए बहुत ही सरल और देशी है:

server = couchdb.Server('http://localhost:5984') 
db = server['tweets'] 
if MyDocId in db: 
    mytemp = db[MyDocId] 

mytemp = db.get(MyDocId) 
if mytemp is None: 
    print "missed" 

अधिक के लिए couchdb-python docs देखें।