我目前有一个聊天机器人设置来将记录存储到MongoDB上。存储在Mongo中的对象看起来像......
{ ..., expiration_time: 12451525, ... }
其中expiration_time
是以分钟表示的数字。
我的初始方法是在Web应用程序上使用setInterval
来查询数据库,以删除与当前时间大于或等于到期时间的条件匹配的所有记录。但是,当我已经有其他操作(例如读取和写入数据)时,我觉得从Web应用程序到数据库会有很多其他查询。
我读到了将函数存储到Mongo上,但我确定如何自动调用函数来自行删除记录。
我绝对会喜欢任何有关最佳做法的反馈,方法或指南。
提前致谢!
答案 0 :(得分:1)
恕我直言有两种选择:
答案 1 :(得分:1)
您可以使用TTL index:
db.messages.createIndex( { "expiration_time": 1 }, { expireAfterSeconds: 0 } )
唯一的要求是expirtion_time
必须是日期而不是整数。
要在特定时钟时间到期文档,首先在保存BSON日期类型值的字段上创建TTL索引