mongodb - MongoDB 每条消息 TTL
问题描述
是否可以在 MongoDB 中设置每条消息的 TTL?我想插入可以具有不同 TTL 的消息,我使用 MongoDB 检查是否必须重新发送消息
解决方案
是的,有可能,请参阅通过设置 TTL 使集合中的数据过期。
首先,您必须在您设置0
的地方创建一个 TTL 索引expireAfterSeconds
。您必须设置expireAt
时间戳,通过将希望的 TTL 添加到当前时间来计算。
例如创建一个索引:
db.log_events.createIndex( { "expireAt": 1 }, { expireAfterSeconds: 0 } )
然后,如果您想要文档的 3 秒 TTL,请使用属性插入它:
"expireAt": time.Now().Add(3 * time.Second)
要拥有 1 小时 TTL 的文档:
"expireAt": time.Now().Add(time.Hour)
推荐阅读
- javascript - 有没有办法在javascript中自定义window.print()中的保存按钮?
- selenium - 无法为活动元素找到正确的 xpath
- python - 对于最大和子列表,是否有任何时间复杂度为 O(n^3) 的算法?
- java - 当用户滚动到 RecyclerView 的底部时,使用 ScrollListener 从 Firebase Realtime DB 中提取数据的问题
- vue.js - 如何使用自定义过滤器功能过滤 b 表行?
- gitlab - 找不到 gitlab“admin/runners”页面来注册共享跑步者
- java - 使用java从本地主机创建远程hdfs目录
- css - 更改为 Bootrap 4,我的导航栏现在看起来是蓝色的,并且没有一个下拉菜单与之前的位置对齐
- node.js - 出现错误:连接 ECONNREFUSED 127.0.0.1:3306
- c++ - 智能指针不能自动用作原始指针吗?