【问题标题】:Listen to field's value change of MongoDB's document with Spring用 Spring 监听 MongoDB 文档的字段值变化
【发布时间】:2020-09-05 17:37:58
【问题描述】:

根据我的用例,每当用户注册到我的站点时,都会在用户集合中创建以下文档。

{
 "_id": "xxxx",
 "name": "xxxx",
 "hash": "xxxx",
 "salt": "xxxx",
 "approved": false
}

只有在管理员批准后,用户的注册请求才会被接受。注册后管理员不会立即批准,通常需要一天以上的时间查看注册请求列表。经管理员批准后,上述文件变化如下:(已批准字段更改为true)

{
 "_id": "xxxx",
 "name": "xxxx",
 "hash": "xxxx",
 "salt": "xxxx",
 "approved": true
}

下面两个功能是用spring实现的。

public void createRegistrationRequest(User obj) {
   // logic
}

public void executeAfterApproval() {
   // logic
}

executeAfterApproval() 方法应在 approved 字段值更改为 true 时执行。 Spring如何监听该字段的值变化并触发方法的执行?

PS:实际上,最初的用例有点难以解释,因为它更多地与内部场景相关。因此,将场景翻译为用户注册,以便于理解问题。

【问题讨论】:

    标签: java spring mongodb rest


    【解决方案1】:

    您应该使用 MongoDB 更改流。如果您使用的是 Spring Data,它同时支持命令式和反应式驱动程序。您可以使用更改流来监听用户集合更改并应用一些更具体的标准。

    检查:https://docs.spring.io/spring-data/mongodb/docs/current/reference/html/#change-streams

    【讨论】:

      猜你喜欢
      • 2020-03-15
      • 2011-11-27
      • 1970-01-01
      • 2012-12-21
      • 1970-01-01
      • 2020-10-27
      • 1970-01-01
      • 2012-03-30
      • 2021-01-09
      相关资源
      最近更新 更多