我有一個問題,我喜歡「自動」刪除我的沙發上的文檔,這些文檔至少要6個月大。 我的CouchDb實例在Linux服務器上運行,有沒有什麼辦法可以實現這個很簡單(就像編寫一個簡單的2行shell腳本一樣)?CouchDb:如何刪除大於6個月的文檔?
回答
你可以寫在CouchDB中的更新功能刪除某些條件的文檔(可以使用PARAMS同時調用函數): http://wiki.apache.org/couchdb/Document_Update_Handlers#Creating_an_Update_Handler
(看「就地」並想象設置「_delete:true」)。
像
"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)
謝謝。更新函數是我一直在尋找的。 –
只要我知道,CouchDB將每個數據庫(包含所有文檔)存儲在單個文件()中。因此,您將無法通過名稱或添加日期時間查找特定的文檔。
UPDATE:
我認爲唯一的辦法是一個 「_doc_created」(或 「_doc_established」)字段添加到每個文件,用時間戳(相似SQLS NOW()
)。然後創建一個僅顯示文件ID和「_doc_created」字段值的視圖:
e.G.
function(doc) {
emit(doc._doc_created, doc._id);
//or just emit(doc._doc_created) 'couse views alsways return docIDs
}
,然後寫一個腳本(如shell腳本),這得到所有這些ID和日期(通過捲曲),過濾,然後(再次通過捲曲)刪除所有文檔從數據庫,_doc_crated
日期時間是超過6從現在起一個月
+1。與大多數文件系統和RoR等系統不同,CouchDB不要求或建議您在數據中保留時間戳。這是不幸的,因爲成功的應用程序(即那些「活」幾個月或幾年)的應用程序幾乎總是需要稍後的信息。像種植一棵樹,現在是清理數據的下一個最佳時間。由於CouchDB非常寬鬆,您可以根據需要爲記錄添加時間戳,並根據需要查詢和刪除它們。 – JasonSmith
儘管添加時間戳的方法很好,但運行'清除腳本'的建議方法是一個非常複雜的方法。請參閱「couchdb中的更新函數」,瞭解更簡單的方法並利用相應的couchdb功能。 – Jay
- 1. 如何用空的「」文檔ID刪除一個couchdb文檔?
- 2. 刪除CouchDB中的多個文檔
- 3. 刪除6個月以前的文件
- 4. 如何清除couchDB文檔
- 5. 如何刪除CouchDB中的多個文檔?
- 6. 刪除CouchDb中的文檔附件
- 7. 的CouchDB/PouchDB選擇已刪除文檔
- 8. 在CouchDB中刪除過期的文檔
- 9. 如何刪除一個月前的文檔
- 10. CouchDB文檔最大大小
- 11. 如何「取消刪除」CouchDB中的一組文檔?
- 12. 如何刪除CouchDB中的所有Ektorp文檔
- 13. 如何在複製中完全刪除CouchDB文檔
- 14. 如何使用CouchPotato從CouchDB中刪除文檔?
- 15. CouchDB文檔大小限制
- 16. 如何從大於6個月的sql中選擇數據?
- 17. 如何返回MYSQL中的項目大於6個月?
- 18. CouchDB刪除並重新創建一個文檔
- 19. 如何刪除iCloud文檔?
- 20. SQL - 最近6個月(12,18,24,30)除以6個月查詢
- 21. 使用sed刪除大於6個字符的所有單詞
- 22. 如何防止匿名用戶在couchDB中刪除/編輯我的文檔?
- 23. couchdb加入2個文檔
- 24. PHP如何刪除少於6個字符的行
- 25. 刪除多個文檔
- 26. 刪除不屬於索引的文檔
- 27. 如何存儲CouchDB文檔的投票?
- 28. CouchDB文檔ID是如何計算的?
- 29. 如何更新CouchDB中的文檔
- 30. vim:如何刪除整個文件的6個前導字符?
我更新了我的文章。我希望它能對你有所幫助 –
V-Light是正確的,如果沒有(1)所有文檔中的時間戳,以及(2)準備按時間戳搜索的查詢,您都無法做到這一點。但是,一旦/如果你有這個問題,我就用'jss'來做一次性散裝沙發工作。基本上:'curl --silent $ some_query | jss - '{_id:$ ._ id,_rev:$ ._ rev,_deleted:true}'--bulk-docs | curl --silent $ some_db/_bulk_dos' – JasonSmith
由於使用google很難找到,下面是鏈接到jss:https://github.com/iriscouch/jss –