首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除CouchDB中的多个文档

删除CouchDB中的多个文档
EN

Stack Overflow用户
提问于 2012-06-05 21:24:40
回答 1查看 1.5K关注 0票数 5

在使用CouchDB框架时,我有一个关于CouchCocoa的“最佳实践”问题(实际上我使用的是连接到iOS的CouchDB端口)。

我需要删除一堆通过查询获得的文档。我知道3种方法:

1)将所有文档放入NSArray,然后使用CouchDatabase deleteDocuments:

2) foreach查询行调用delete方法,如: for (CouchQueryRow* query.rows中的row ) row.document DELETE;

3)创建一个发出_id、_rev属性的查询,并添加_deleted属性,然后使用批量更新,如: couchDatabase putChanges:

更好的性能是什么?有更好的方法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-21 21:10:23

在HTTP API级别,实现这一点的最快方法是运行单个批处理请求,该请求提供要删除的所有文档的_id和当前_rev

您的工作是确保CouchCocoa真正做到这一点-我知道CouchCocoa会尝试缓存它读取的文档的_rev,所以如果您要删除刚刚读取的文档,[CouchDatabase deleteDocuments:]就足够了,否则您将不得不首先使用[CouchDatabase getDocumentsWithIDs:]

如果您的文档是非常大的,那么使用视图而不是批量获取_rev可能会更好。这将强制您使用[CouchDatabase putChanges:]执行批量删除。我不知道文档大小的阈值在哪里,所以您必须对此进行基准测试。

当然,您还需要决定当冲突发生时会发生什么。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10898158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档