24

がxfooに等しいすべてのドキュメントを削除したい。かなり基本的な操作のように思えますが、理解できません。

個々のドキュメントを削除する方法は知っていますが、それだけでは十分ではありません。一度に数千のドキュメントを削除する必要があるかもしれません。

CouchDB でドキュメントを一括削除するにはどうすればよいですか?

4

4 に答える 4

11

それが正しい方法かどうかはわかりませんが、fooフィールドを公開するビューをdoc._id作成し、削除するすべてのドキュメントの s についてビューをクエリし、すべてのドキュメントに対して一括更新を行います。そのため、(理想的には) 2 回の呼び出しでソファを呼び出します。

http://comments.gmane.org/gmane.comp.db.couchdb.user/11222

同様の方法があります。

ドキュメントの一括削除のdoc._deleted=true例に従って、削除および更新するすべてのドキュメントに対して一括更新を実行します。

于 2012-05-01T20:58:06.537 に答える
2

それを処理するものも必要で、当時は何もなかったので、独自の実装を作成することにしました。

ここで見つけることができます

アップデート

これは私にとって非常に役に立ち、間違いから身を守るために、このツールにバックアップ/復元機能を追加しました。この機能は、バージョン 0.2 で利用できるようになりました。

于 2015-11-26T16:32:22.073 に答える
0

ドキュメントを削除するために、やや長い方法を試しました。最初に、削除したいドキュメントを呼び出す map_fun というビューを作成しました。次に、ビューを繰り返し処理し、すべてのドキュメントのキーを保存し、del db['_id'] を使用してそれらを削除しました

map_fun = function(doc){
    if (doc.doc_type == 'classic'){
    emit(doc._id, doc)
    }}

deldoclist = []
for row in db.query(map_fun):
    deldoclist.append(row.key)

for item in deldoclist:
    del db[item]
于 2016-06-22T08:30:07.423 に答える