2013-08-02 2 views
5

Mi chiedevo se esiste un modo per verificare se esiste un documento con un ID particolare in couchdb utilizzando la libreria di python. Sembra che se faccio questo:Come verificare se esiste un documento couchdb utilizzando python

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

e il documento non esiste, il codice genera un'eccezione "resourceNotFound".

È possibile rilevare l'eccezione e inserire il codice nella parte relativa alla gestione delle eccezioni, ma sembra troppo sporca.

Speravo ci fosse un modo per avere un'istruzione "se" che controlla se un documento con una particolare chiave esiste o meno.

Grazie!

+0

possibile duplicato di [Come verificare se esiste un documento couchdb (senza recuperarlo)?] (Http://stackoverflow.com/questions/2831290/how-to-check-if-a-couchdb-document-exists -senza-recupero-di-esso) –

+0

Non proprio un duplicato, dal momento che sto chiedendo esplicitamente la libreria python di divano, non posso davvero fare le richieste HTTP di testa all'interno di quella libreria (almeno non in modo pulito). Ho letto quella soluzione prima di postare la mia. Grazie per aver cercato di aiutare comunque! Apprezzo lo sforzo. – Oleg

risposta

9

I imita oggetto database per DICT api, quindi è molto semplice e nativo per verificare la presenza di documenti nel database:

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" 

Vedi couchdb-python docs di più.