mongodb - 文档自动过期后接收回调的芒果模板
问题描述
我有一个像下面这样的集合,它的过期时间设置如下图的一部分。
db.createCollection(
"userDetails",
{
capped: false,
validator: {
$jsonSchema: {
bsonType: "object",
required: ["userId","userName"],
properties: {
userId: {
bsonType: "string",
description: "must be a string and is required"
},
userName: {
bsonType: "string",
description: "must be a string and match the regular expression pattern"
},
}
}
},
validationLevel: "strict",
validationAction: "error"
}
);
db.userDetails.createIndex( { "userName": 1 }, { expireAfterSeconds:6000});
所以现在每当它过期时,它都会从 mongodb 中删除,但是我有一些其他要求,我必须通知其他一些服务关于这个删除,所以我尝试了下面的代码,但这每次我都会执行,我也没有得到任何记录。
template.execute("userDetails", new CollectionCallbackBoolean>() {
public Boolean doInCollection(userDetails.class, DBCollection collection) throws MongoException, DataAccessException {
List<Document> indexes = collection.getIndexInfo();
for (Document document : indexes) {
log.info("Docouments " + document.get("userName"))
}
}
return false;
}
});
那么如何注册到 mongo 进行回调以使用 mongotemplate 获取这些过期记录..
解决方案
推荐阅读
- css - 如何让弹性项目定位在与中心对齐的网格元素内
- pandas - 在 Pandas-Matplotlib 中设置 x 轴的日期时间格式
- sql - SQL - 如何在一年中的每个日期按年龄和状态对项目进行分组/计数 - 第 2 部分
- scrapy - 如何从 Scrapy 的响应中提取项目 ID?
- node.js - Npm 启动错误:events.js:292 抛出未处理的异常
- vue.js - Vuetify 自动完成 - 清除自动完成缓存项列表/建议
- node.js - 使用 mocha 验证电子邮件内容
- sql - postgeSQL 中的时区
- reactjs - 与 redux 组件重新渲染一起使用时,React 输入掩码焦点位置移动到末尾
- grafana - 是否可以根据查询结果在 Grafana 上显示动态文本?