CouchDB递归抛弃查询

时间:2010-01-11 19:42:37

标签: couchdb

不完全确定该怎么称呼它,但在SQL中我经常发现自己在开发时做了类似的事情:

DELETE FROM people WHERE name == "John"

当我刚刚使用批量导入程序导入大量数据时,通常会使用这种方法,并希望清除一些结果,而不是整个数据集。我如何在CouchDB中执行此操作?我可以轻松制作地图功能

function(doc) {
   if (doc.Name == "John") 
       emit(doc._id, null);
}

然后删除返回的_ids ...但这需要我编写某种前端应用来获取这些_id并执行DELETE。有时我的查询要复杂得多,需要一些查询,然后是删除,然后是另一个查询和更新。

进行这种地图/删除以及地图/更新的可接受方法是什么?

1 个答案:

答案 0 :(得分:2)

接受的方法几乎就像你描述的那样。查询视图,然后删除返回的ID。这并不像听起来那么糟糕。使用CouchDB库选择语言的快速脚本,您实际上只是将SQL的逻辑转换为具有更强大功能的语言。有些人可能会考虑这种好处YMMV