我有以下文档结构:
{
"_id": "project1",
"customer": "someDefaultCustomer",
"users": {
"user1": {
"projectRoles": ["CUSTOMER"]
}
}
}
现在,我将使用Spring Data Mongo查询用户包含'user1'的所有项目:
@Query("{'users.?1': {$exists : true} }")
Project findUserProject(String login);
问题是Spring Data在查询中逃脱了替换,因此我得到了以下“真实”查询:
o.s.d.m.r.q.StringBasedMongoQuery - 创建的查询{ "users.\"user1\"" : { "$exists" : true}}
是否可以避免逃跑?当然,我可以使用spring标准创建自定义查询,但我想保持'@Query'方法。
答案 0 :(得分:0)
将完整的users.user1作为变量传递,即:
@Query("{?1: {$exists : true} }")
如果你真的想避免人们不得不这样做,那么就有一个辅助函数来添加“用户”。在字符串的开头,然后调用此方法。