python

2013-08-02 24 views
5

kullanarak bir couchdb belgesinin var olup olmadığını nasıl kontrol edebilirim SofaDT kitaplığı kullanarak couchdb'de belirli bir kimliğe sahip bir belgenin olup olmadığını kontrol etmenin bir yolu olup olmadığını merak ediyordum.python

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

ve belge yok, kod, bir "resourceNotFound" istisna atar: Ben bunu yaparsam gibi görünüyor.

Sadece istisnayı yakalayabilir ve kodumu özel durum işleme bölümüne koyabilirdim, ancak çok kirli görünüyor.

Belirli bir anahtara sahip olan bir belgenin var olup olmadığını kontrol eden bir "if" ifadesine sahip olmanın bir yolu olduğunu umuyorum.

Teşekkürler!

+0

olası bir kopyası [Bir couchdb belgesinin var olup olmadığı nasıl kontrol edilir (almadan)?] (Http://stackoverflow.com/questions/2831290/how-to-check-if-a-couchdb-document-exists -without-retrieving-it) –

+0

Gerçekten bir yinelenen değil, çünkü ben açıkça python kütüphanesi hakkında soru soruyorum Bu kitaplık içinde baş http istekleri yapamıyorum (en azından temiz bir şekilde değil). Benimkini göndermeden önce bu çözümü okudum. Yine de yardım etmeye çalıştığın için teşekkürler! Çabaları takdir ediyorum. – Oleg

cevap

9

veritabanı nesnesi taklit api dict için, bu yüzden veritabanında dokümanlar kontrol etmek için çok basit ve doğal açıklanmıştır:

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" 

daha couchdb-python docs bakınız.