我有一个User
类,它有一个Social
类,并且在relations
内。
地图将Relation
个用户保留给其他用户。
class Social {
val relations: Map<String, Relation>
// ...
}
class Relation(
val type: RelationType,
// ...
)
enum class RelationType {
CONTACT, IN, OUT
}
我有一个UserRepository,它想通过将userId参数注入点表示法语法来查询传出的Relations
。
@Repository
interface UserRepository : ReactiveMongoRepository<User, String> {
@Query("{ 'social.relations.?0.type' : 'OUT' }")
fun findUsers(id: String): Flux<User>
}
问题:
但是在我的测试课上,我得到以下错误:
org.bson.json.JsonParseException: JSON reader was expecting ':' but found 'OUT'.
但是,在Mongo Shell上,查找用户和社交对象
"relations" : {
"1234567890" : {
"type" : "OUT",
}
}
以及以下查询:
db.user.find({ "social.relations.1234567890.type" : "OUT" })
检索拥有此关系类型的用户。
问题:
如何在Spring Data中编写相同的查询?