当前位置: 首页 > 知识库问答 >
问题:

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

常乐
2023-03-14

如何在MongoDB中对另外两个字段执行嵌套查询?我有下面这样的JSON文档,希望使用sample2Cd和sample3Cd进行查询。我们怎样才能做到这一点?

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

Currency findByCountries_Sample2CdAndsample3CdAndNumberCode

这是我的文件

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

共有2个答案

何修能
2023-03-14

我通过使用@Query projection解决了这个问题。干得好!

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

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

岳池暝
2023-03-14

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

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

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

Currency findByCountriesSample2CdAndCountriesSample3CdAndCountriesNumberCode(String param1,String param2, String param3);
 类似资料:
  • 需求:从一个用户界面,我得到一个数据库表的选定列表。这些表中的数据将被提取并存储在文件位置。我们希望使用NiFi Rest API,因为有定制UI的需求。因此,我们使用REST API调用NiFi处理器。 问题是如何在循环中为在分隔字符串中接收的每个表名调用ExecuteSQL。 如果需要更多的信息,请让我知道。

  • 然后我添加了一个自定义存储库来执行搜索: 然后我这样搜索: 但是我没有得到任何结果,尽管事实上有匹配的结果。 我在谷歌上没有找到任何答案。有人能帮我吗?

  • 问题内容: 经过一些挖掘后,我可以这样运行Linux命令: 我想做的是,在远程计算机上运行以下命令: 我可以从终端成功完成此操作,但是当我尝试在Go中运行它时,出现以下错误: 更新 :为了方便起见,我更新了问题。 问题答案: 根据有关exec软件包的文档,程序名称和参数是方法的不同参数。您应该这样做: 如果您需要更详细的说明,还可以查看go.crypto / ssh 软件包。

  • 问题内容: 我想将某些对象存储在HashMap中。问题是,通常您只使用一个对象作为键。(例如,您可以使用字符串。)要使用多个对象,我想这样做。例如,一个类和一个字符串。有没有简单干净的方法来实现这一目标? 问题答案: 您的密钥必须实现hashCode和equals。如果它是 SortedMap ,则还必须实现Comparable接口

  • 考虑和<代码>雇员< /代码>和<代码>地址< /代码>关系。在和之间有一对一的映射。以下是模型: 现在,当我执行以下HQL查询时,它会在内部生成两个查询。一个取员工,另一个取地址。 由Hibernate生成的SQL查询 因为我使用的是,所以我希望Hibernate只执行一个带有JOIN的查询,一次性获取员工和地址数据。 你知道为什么它要执行两个查询吗?我如何让Hibernate使用join只执行

  • 我正在与雨果合作,有一个关于where条款的问题。目前我正在做以下工作,它工作得很好。我试图再添加一个where参数,但得到的错误如下: 问题:如何在Hugo where子句中添加多个嵌套参数。与此同时,我将继续测试它。 调用where时出错:无法通过无匹配参数或多于或等于两个参数来计算数组 作品: 失败: Per Hugo:嵌套where子句您还可以嵌套wheres子句,以便通过多个参数深入到内