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

时间:2019-03-14 15:28:56

标签: mongodb spring-data-mongodb

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

我能够这样写,但这行不通!

Currency findByCountries_Sample2CdAndsample3CdAndNumberCode

这是我的文档

{
    "_id" : ObjectId("5c8a65026161ce4970e85035"),
    ..........
    ..............
    "countries" : [ 
        {
            .......
            "sample2Cd" : "AB",
            "sample3Cd" : "ABC",
            "numberCode" : "1"
            ......
        }
    ]
}

2 个答案:

答案 0 :(得分:0)

您可以编写如下的spring repo方法。

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

如果组合将唯一,则可以将返回类型更改为object,而不是如下所示的列表。

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

答案 1 :(得分:0)

我能够通过使用 @Query 投影解决此问题。给你!

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

注意:同样,您可以使用多个参数来构成查询并获取结果。