spring 如何从MongoRepository/QueryDSL中获取不同的字段?

o4hqfura  于 2022-12-02  发布在  Spring
关注(0)|答案(2)|浏览(165)

我的文档是

@QueryEntity @Data @Document(collection = "MyCol") public class MyCol {
    @Id private String _id;
    private     String version;

我想得到所有不同的版本存储在数据库中。
我的尝试:

public interface MyColDao extends MongoRepository<MyCol, String>, QueryDslPredicateExecutor<MyCol> {
    @Query("{ distinct : 'MyCol', key : 'version'}")
    List<String> findDistinctVersion();
}

或者只使用findDistinctVersion而不使用查询注解。
大多数github的例子都有一个By-field,如

List<Person> findDistinctPeopleByLastnameOrFirstname(String lastname, String firstname);

我不需要By字段。
另一个例子我找到了here

@Query("{ distinct : 'channel', key : 'game'}")
public JSONArray listDistinctGames();

这对我似乎不起作用。
我似乎找不到queryDSL/Morphia的文档来做这件事。

4nkexdtk

4nkexdtk1#

public interface MyColDao extends MongoRepository<MyCol, String>, QueryDslPredicateExecutor<MyCol> {
        @Query("{'yourdbfieldname':?0}")
        List<String> findDistinctVersion(String version);
    }

此处版本替换您的数据库字段名
你可以更

gstyhher

gstyhher2#

这个spring文档提供了详细信息,当你想获取不同的值时,如何形成一个表达式。
Link

相关问题