首页 > 解决方案 > 文档自动过期后接收回调的芒果模板

问题描述

我有一个像下面这样的集合,它的过期时间设置如下图的一部分。

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 获取这些过期记录..

标签: mongodbspring-bootmongodb-query

解决方案


推荐阅读