Java过期删除_关于java:删除CouchDB中过期的文档

我正在使用couchDB存储一些数据,我在删除n天之前插入的文档时遇到问题。

所以,我想通过视图加载我想要删除的文件,并立即对所有这些文件执行DELETE请求;但失败了。

样本文件:

{

"date":"20160912",

"_id":"1xxxxx",

"name":"namal"

}

查看功能:

function (doc) {

if(doc.date){

emit(doc.date,doc);

}

}

加载文件的网址:

HTTP://本地主机:5984 / DBX / _design / viewx / _view /日期键=%2220160910%22?

删除请求 :

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实现中的解决方案。

注意:在这种情况下,我想让它们真的删除。不是看不见的。

语言:Java 1.7

操作系统:Ubuntu 14.04 64位

CouchDB版本:1.6.1

您可以使用CouchDB的批量文档API来更新文档(将_deleted字段设置为true的更新与删除一样好)。

更多信息:http://wiki.apache.org/couchdb/HTTP_Bulk_Document_API#Modify_Multiple_Documents_With_a_Single_Request

对于更永久的东西,您可以使用CouchDB的_purge命令。 细节在这里

请注意,不会复制此操作。 因此,如果您有复制设置,则必须在每个数据库上执行此操作。

谢谢你的回答。但它不删除文件对吗?它使它看不见。那么,如何删除呢?我想让它实际上删除,就像我在问题中提到的那样。

这是CouchDB术语中的"删除"。您是否在寻找能够删除文档的所有痕迹和历史记录的内容?你想要这种"永久性删除"同步吗?

是。我想永久删除它们并释放空间

我已经用相关信息更新了答案。

非常感谢kul。我没有尝试清除命令。我会检查一下。

我在你提到的清除文档中发现了一个非常重要的评论。"如果你使用_purge来恢复空间,你几乎肯定会不恰当地使用CouchDB。开发人员不恰当地使用_purge的最常见原因是管理短期数据(日志条目,消息队列等)。更好的补救措施是定期切换到新数据库并删除旧数据库(一旦其中的条目全部到期)。"所以,现在我正在尝试每天创建数据库,并在过期时删除整个数据库。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值