![](/img/trans.png)
[英]List all documents from mongodb where the each document's one field has max value in spring boot
[英]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.