使用Spring Boot从MongoDB存储库中选择嵌套属性

时间:2018-07-30 08:50:26

标签: mongodb spring-boot

我喜欢解析MongoRepository中的方法名称,因此不必编写查询。但是我想知道是否有一种方法可以使用此模式仅选择一个特定的(嵌套的)字段。

我的文档如下:

@Document(collection = "elements")
public class ElementEntity {

    @Id
    private String id;

    private String type;
    private MetaData metaData;
    private String json;

}

public class MetaData {

    private String title;
    private String description;
    private final List<String> keywords = new ArrayList<>();

}

我可以用以下关键字按关键字搜索ElementEntities:

List<ElementEntity> findByMetaDataKeywords(String keyword);

我现在想获取可能的关键字列表,但是我没有找到有关方法名称模式如何或是否可能的文档。我希望这样的事情可能会起作用,但是不起作用:

List<String> getDistinctMetaDataKeywordsAsc();

有没有一种方法可以仅通过接口方法来实现,还是我需要编写(SQL?)查询?

根据答案之一中的评论进行编辑: 假设我的元素集合中有两个文档:

  1. 具有关键字:“免责声明”和“合法”
  2. 具有关键字:“脚注”和“合法”

我想要一种方法,该方法以字母顺序返回包含三个不同关键字的列表:“免责声明”,“脚注”,“合法”

1 个答案:

答案 0 :(得分:1)

尝试

       List<ElementEntity> findByMetaData_Keywords(List<String> keywords);