我有一个问题,我想要“自动”删除我的couch中六个月以上的文档。 我的CouchDb实例运行在Linux服务器上,有没有办法实现这个简单的操作(比如编写一个只有两行的shell脚本)?
"deletefunc":
...
if(doc.created_at<req.query.mindate) {
doc._deleted:true;
return [doc, "deleted"]
}
并调用...db/_design/updatefuncdesigndoc/_update/deletefunc/dok_id_x?mindate=20110816
唯一需要做的是:使用此函数显式地调用数据库中的每个文档(首先调用_all_docs或_changes)。
function(doc) {
emit(doc._doc_created, doc._id);
//or just emit(doc._doc_created) 'couse views alsways return docIDs
}
然后编写一个脚本(例如shell脚本),通过curl获取所有这些ID和DATE,进行过滤,然后再次通过curl从数据库中删除所有_doc_crated日期早于现在6个月的文档。
jss
来进行一次性的Couch批量操作。基本上,你需要运行以下命令:curl --silent $some_query | jss - '{_id: $._id, _rev:$._rev, _deleted:true}' --bulk-docs | curl --silent $some_db/_bulk_dos
- JasonSmith