java - 子文档字段的Spring Data MongoDB查询

标签 java mongodb spring-data spring-data-mongodb nosql

我正在将 Spring Data 的 CrudRepository 与 mongodb 一起使用,我在编写查询时遇到了一些问题,该查询将选择具有特定子文档值的文档。这是一个例子:

{
"_id" :,
"_class" :,
"matchHeader" : {
    "suspend" : {},
    "active" : true,
    "booked" : true,
    "eventId" : NumberLong(1009314492),
    "status" : ""
},
"matchInfo" : {

    }
}

我需要在 ma​​tchHeader 子文档中选择具有特定 eventId 字段的文档。我尝试编写一个像这样的函数 findByMatchHeaderEventId(id) 但它根本没有帮助。我怎样才能实现它?

最佳答案

嵌套属性的属性遍历在 Spring Data MongoDB Reference Documentation 中有解释。 .

您需要正确定义您的域对象类(省略构造函数/getters/setters):

public class MyDocument {
  @Id
  private String id;
  private MatchHeader matchHeader;
  private MatchInfo matchInfo;
  ...
}

public class MatchHeader {
  private Map<,> suspend;
  private boolean active;
  private boolean booked;
  private Long eventId;
  private String status;
}

和你的存储库类

public interface MyDocumentController extends MongoRepository<MyDocument, String> {
  public List<MyDocument> findByMatchHeaderEventId(Long id);
}

否则,您可以尝试另一个答案中建议的findByMatchHeader_EventId

关于java - 子文档字段的Spring Data MongoDB查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26887505/

相关文章:

spring - Spring Data JPA 问题 - BeanEntityManagerFactory

java - 本地方法调用与对象方法调用

java - 最后的分析失败了。后台任务页面上提供了更多详细信息

java - Maltparser 错误

javascript - 更新数组中的最后一项

javascript - meteor js和mongodb : how to group many collections into one

javascript - 异步: Connecting to MongoDB after the server started

jersey - Spring Data让spring找不到JAXRS的@Provider?

java - 使用JSP作为模板解析引擎-安全问题

hibernate - spring data jpa select 查询父类(super class)字段