2016-05-18 3 views
3

Azure DocumentDBにTTLを追加する方法を知っていますか?私は1秒後(テスト用)に値1の "TTL"というプロパティを削除しようとしました。しかし、それは動作しません。Azure DocumentDBにTTLを追加するには

答えて

7

まず、コレクションにttlを有効にする必要があります。これは、[設定]で発見されたポータル内のブレード:

ttl setting

あなたはこれをオンにすることをお勧めします。次に、新しい文書(またはttlプロパティをすでに持っている古い文書)に対してttlプロパティを使用して作業することができます。

注:プロパティ名は、でなく、TTLである必要があります。

+0

はい、これが正しい答えです。ありがとう! :) – vishnu

1

デビッドの答えは素晴らしいですし、私は同じことを繰り返す必要はありません、ただいくつかのポイントを追加したいだけです。

いずれにしても、Davidがプログラムで制御できると言ったように、ポータルからTTLを設定することができます。 TTLは、コレクションレベルの下にあるすべてのドキュメントまたは特定のタイプのドキュメントに対して設定できます(一定の間隔で特定のタイプのドキュメントを自動削除する場合)

また、既存のドキュメントのTTLをリセットするには、書込み操作を行う。これを行うと_tsが現在の時刻に設定され、ttlで設定された文書の有効期限までのカウントダウンが再び開始されます。ドキュメントの時間を変更する場合は、他の設定可能なフィールドと同様にフィールドを更新できます。

collection.setDefaultTimeToLive(259200) //collection level 
document.setTimeToLive(259200) //document level 

もっとhere

//This is how the driver handles internally 
public void setTimeToLive(Integer timeToLive) 
{ 
    if (timeToLive != null) { 
     super.set("ttl", timeToLive); 
    } else if (super.has("ttl")) { 
     super.remove("ttl"); 
    } 
} 
関連する問題