如何自动删除过期的数据?


  • Lv 1

    我想要删除1天前的数据,但不想每天手动删除,请问有甚么方法吗?


  • Lv 1

    使用排程執行刪除指令


  • V

    To create a TTL index, use the
    db.collection.createIndex() method with the
    expireAfterSeconds option on a field whose value is either a
    date or an array that contains
    date values.

    Note

          The TTL index is a single field index. Compound indexes do not support the TTL property. For more information on TTL indexes, see TTL Indexes.

    You can modify the expireAfterSeconds of an existing TTL index using the collMod command.

    ref : 

    本帖下載内容已隐藏,请登入以查看隐藏内容!


  • 註冊用戶

    使用 TTL 索引是比較方便的方式,mongodb 會在後台產生一個 process 不斷的查詢並刪除1天前的數據


  • Lv 1

    使用 TTL 集合時是有限制的: 

    • 你不能創建 TTL 索引,如果要索引的字段已經在其他索引中使用
    • 索引不能包含多個字段
    • 索引的字段必須是一個日期的 bson 類型

    如果你違反了上述三個規則,那麼超時後文檔不會被自動清除。


  • Lv 1

    使用 expireAfterSeconds  前還要了解刪除"一天前"的定義

    如果是從新增後 86400s 後失效(如 session), 那可以使用, 

    如果是只要到隔天一率刪除前一天的資料, 不管是否超過 86400s, 那就不適合


登录后回复
 

与 萌阔论坛 的连接断开,我们正在尝试重连,请耐心等待