【发布时间】:2018-06-24 09:22:11
【问题描述】:
我正在尝试在 MongoDB 中查询在文档的嵌套映射中具有特定键的所有文档
{
"_id" : ObjectId("5a5cd9711736c32c45f11adf"),
"name" : "Test A",
"userSubscription" : {
"map" : {
"1234" : true,
"999" : true,
}
}
}
我查询如下:
db.getCollection('myColl').find( { "userSubscription.map" : {"1234":true }})
它正在工作,但是,它只返回包含单个值“1234”的文档,所以如果“userSubscription.map”包含“1234”和“5555 " 查询没有显示任何结果。
我正在使用 Robo3T 来测试查询,并使用 SpringBoot 注释来查询这个, 答案可以在 Spring Boot 注释查询中吗?
Spring Boot 查询示例:
@Query("{QUERY : ?0}")
List<Person> findByUserSubscription(String key);
** "?0" 是使用第一种方法参数
谢谢!!!
更新:
现在文档看起来像这样:
{
"_id" : ObjectId("5a5cd9711736c32c45f11adf"),
"name" : "Test A",
"userSubscription" : {
"1234" : true,
"3333" : true
}
}
Robo 3T 查询:db.getCollection('Person').find({ "userSubscription.1234": {$exists : true} })
工作完美!
但是,Spring boot 中的查询看起来像:
@Query("{userSubscription.?0 : {$exists: true} }")
它没有显示任何结果...
什么问题???
【问题讨论】:
标签: json mongodb spring-boot