使用MongoRepository使用两个或多个参数执行Spring Data Mongodb嵌套查询?

问题描述 投票:0回答:2

如何在MongoDB中为另外两个字段执行嵌套查询?我有类似下面的JSON文档,并希望使用sample2Cd和sample3Cd进行查询。我们怎么做?

我能够这样写,但这不起作用!!

Currency findByCountries_Sample2CdAndsample3CdAndNumberCode

这是我的文件

{
    "_id" : ObjectId("5c8a65026161ce4970e85035"),
    ..........
    ..............
    "countries" : [ 
        {
            .......
            "sample2Cd" : "AB",
            "sample3Cd" : "ABC",
            "numberCode" : "1"
            ......
        }
    ]
}
mongodb spring-data-mongodb
2个回答
0
投票

你可以写下面的spring repo方法。

List<Currency> findByCountriesSample2CdAndCountriesSample3CdAndCountriesNumberCode(String param1,String param2, String param3);

如果组合是唯一的,那么您可以将返回类型更改为object而不是下面的列表。

Currency findByCountriesSample2CdAndCountriesSample3CdAndCountriesNumberCode(String param1,String param2, String param3);

0
投票

我能够通过使用@Query投影来解决这个问题。干得好 !

@Query(value = "{'countries.sample2Cd' : ?0, 'countries.sample3Cd' ?1 }")
List<Currency> findByCountriesSample2CdAndSample3Cd(String param1,String param2);

注意:同样明智的是,您可以使用多个参数并形成查询并获得结果。

© www.soinside.com 2019 - 2024. All rights reserved.