繁体   English   中英

用Spring监听MongoDB文档的字段值变化

[英]Listen to field's value change of MongoDB's document with Spring

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

{
 "_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
}

批准的字段值更改为 true 时,应执行executeAfterApproval()方法。 如何用Spring监听这个字段的值变化并触发方法的执行?

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM