データベースがあり、すべてのレコードを切り捨てたいのであれば、すべての文書に_deletedキーを追加するか、CouchDB-pythonライブラリのdb.delete()を呼び出すことができます。私はcouchdb-pythonのdelete
を使用していますが、すべての文書を取り出してから、設計文書を除いて各文書の.deleteを呼び出すと動作しないようです。CouchDBですべての文書を削除する
ここに私のコードです。
docs = get_db().view('_all_docs', include_docs=True)
for i in docs:
if not(i['id'].startswith('_')):
get_db().delete(i)
これはエラーです。 _all_docs
の結果は、id
の代わりに_id
が返されるためです。
File "C:\Users\User\AppData\Local\Programs\Python\Python36-32\lib\site-packages\couchdb\client.py", line 625, in delete
if doc['_id'] is None:
KeyError: '_id'
私の質問は、私は_id
だけではなくid
を返すすべての文書を取得しますどのようにでしょうか?それともこの周りには何か方法はありますか?次の2つのステップで作成できるのCouchDBから文書を削除
なぜこのようにしますか?データベースを削除して再作成するほうが簡単ではないでしょうか? – Flimzy
データベースを削除すると、再度すべてのビューを再作成する必要がありますか?そうですか?申し訳ありませんが、私はかなり新しいです。 @Flimzy – essramos
はい。しかし、うまくいけば簡単にそれを行う方法があります。 – Flimzy