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

Perform Sping Data Mongo Nested Query using two or more parameters using MongoRepository?

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

我可以这样写,但这行不通!!

Currency findByCountries_Sample2CdAndsample3CdAndNumberCode

这是我的文档

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

您可以像下面这样编写 spring repo 方法。

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

如果组合是 唯一的,那么您可以将 return 类型更改为对象,而不是如下所示的列表。

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

我使用 @Query 投影解决了这个问题。给你!

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

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