我想在couchbase服務器上設置TTL(生存時間),以便所有文檔從移動設備持續推送用於複製。我沒有在文檔中找到任何明確的解釋/示例來做到這一點。 應該如何設置來自移動設備到服務器的文檔通過Sync Gateway的TTL。爲Couchbase服務器中的文檔設置TTL
方法1: 一種方法是在服務器端創建一個視圖,該視圖將createdDate作爲關鍵字返回。我們將查詢該視圖以查找今天返回今天文檔的密鑰,並且可以爲這些文檔設置TTL。但是,我們如何以及何時將這種觀點稱爲這是一種好方法?
方法2: 我應該使用網絡掛接它會聽文檔的更改(創作)做到這一點通過Couchbase精簡版推重複做,爲新文檔設置TTL和保存回Couchbase服務器?
有沒有其他更好的方法來做到這一點?
還有什麼方法來爲特定文件設置TTL?
編輯:我的最後的辦法: 我將創造couchbase服務器以下幾種觀點:
function (doc, meta) {
emit(dateToArray(doc.createdDate));
}
我會有這將在EOD日常運行作業,查詢視圖到今天獲得創建的文檔和設置的TTL那些文件。 這樣我就可以定期刪除文件。
讓我知道是否有任何問題或有更好的方法。
您使用哪個庫來訪問'Couchbase'?每個庫都提供了諸如'add'和'set'等方法,其中肯定有一個參數,通過這個參數你可以設置Key的TTL。有關僅爲特定文檔設置TTL的信息,請參閱http://developer.couchbase.com/documentation/server/current/sdks/dotnet-2.2/time-to-live.html – sameerkn
我正在使用.net sdk。我已經通過上面的文件。但是它在哪裏適合文檔通過Sync Gateway從移動設備複製到服務器的流程?我將如何訪問這些文檔並將TTL設置爲相同? – user2787531
在您的系統中可以通過庫訪問Couchbase的地方,您將使用庫函數來設置TTL。每個文檔都將通過一個密鑰進行標識。所以你需要將這些關鍵信息傳遞給庫。假設Module_A可以訪問Couchbase,並且需要在Module_X中生成複製文檔,那麼您需要將所有必需的信息從Module_X傳遞到Module_A。 Module_X還應該有文檔信息和'Key',它代表了Couchbase中的文檔。 – sameerkn