我使用couchDB来存储一些数据,而且我在删除n天之前插入的文档时遇到了问题。
所以,我想通过一个视图加载我想要删除的文件并立即对所有这些文件执行DELETE请求;但失败了。
示例文档:
{
"date":"20160912",
"_id":"1xxxxx",
"name":"namal"
}
查看功能:
function (doc) {
if(doc.date){
emit(doc.date,doc);
}
}
加载文档的网址:
Web Service Error path property must set before calling the send method
删除请求
curl -X DELETE http://localhost:5984/dbx/_design/viewx/_view/date?key=%2220160910%22
我知道我可以使用_id和_rev在每个文档中执行此操作,如下所示。
curl -X DELETE http://localhost:5984/dbx/1xxxxx?rev="1-1111x1111111x222222x333333"
但在这种情况下,我需要逐个删除生成的文档。我想要的是,一次删除文档列表(bluk docs)(正如我所提到的,实际的requremnet是删除在n天之前插入的文档)。
此外,我知道更好的方法是通过使用CouchBase或MongoDb设置到期时间来清除过期数据。但是我在CouchDB实现中寻找解决方案。
注意:在这种情况下,我想让它们真的删除。不可见。
答案 0 :(得分:1)
您可以使用CouchDB的批量文档API来更新文档(将_deleted
字段设置为true
的更新与删除一样好。)
对于更永久的东西,您可以使用CouchDB的_purge
命令。 Details here
请注意,此操作不会被复制。因此,如果您有复制设置,则必须在每个数据库上执行此操作。