我想删除所有foo
等于x的文档。似乎是一个非常基本的操作,但我就是想不通。
我知道如何删除单个文档,但这还不够好——我可能必须一次删除几千个。
如何批量删除 CouchDB 中的文档?
我想删除所有foo
等于x的文档。似乎是一个非常基本的操作,但我就是想不通。
我知道如何删除单个文档,但这还不够好——我可能必须一次删除几千个。
如何批量删除 CouchDB 中的文档?
我不知道这是否是正确的方法,但创建一个公开该foo
字段的视图,在视图中查询doc._id
您要删除的所有文档的 s,并对所有文档进行批量更新。所以两个(理想情况下)打电话到沙发上。
http://comments.gmane.org/gmane.comp.db.couchdb.user/11222
有类似的方法。
按照批量删除文档doc._deleted=true
中的示例对要删除的所有文档进行批量更新和更新
批量删除很容易:https : //wiki.apache.org/couchdb/HTTP_Bulk_Document_API 只需向 _all_docs 发布一个 JSON 列表,如下所示:
{"_id": "0", "_rev": "1-62657917", "_deleted": true}
我还需要一些东西来处理这个问题,因为当时什么都没有,所以我决定自己实现。
你可以在这里找到它。
因为它对我非常有帮助,并且为了保护自己免受错误,我在这个工具中添加了一个备份/恢复功能,现在可以在 0.2 版上找到
我尝试了一种有点长的方法来删除文档。我首先创建了一个名为 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]