【发布时间】:2020-05-06 12:12:30
【问题描述】:
这就是我的对象的外观。
@Document("parent")
public class Parent {
@Id
private String id;
private String field-1;
private Map<String,Long> someMap;
}
{
"_id" : "parent-id",
"field-1" : "some value",
"someMap" : {
"category-5" : 123,
"category-4" : 456
}
}
当我使用 "category-5" 或 "category-4" 进行搜索时,我想获取整个对象。我正在使用 MongoRepository 和 SpringBoot。
我尝试了以下方法,但它不适合我
public interface ParentRepo extends MongoRepository<Parent, String> {
@Query("{someMap :{$in: [?0]}}")
List<Parent> findBySomeMap(String id);
}
或者,如果有人可以帮助我将其转换为 MongoRepository/@Query 方法,那将非常好,非常感谢
这里的目标是将 CategoryId 作为参数传递给查询
db.getCollection('parentCollection').find({"someMap.category-4" : {$exists:true}})
此方法返回预期结果
【问题讨论】:
-
你看到这个answer了吗?是你想要达到的吗?
-
是的,它是相关的,但它正在获取 someMap 中的元素列表作为地图。我想要的是基于该对象内某个地图内的键的完整父对象
标签: java mongodb spring-boot mongodb-query