spring data mongodb @Query with exclude选项

时间:2014-03-25 19:49:33

标签: spring-data spring-mongo

使用spring数据mongo repository类,我们如何声明一个方法来返回排除了少量字段的文档? Spring数据参考文档显示“包含”字段机制但不排除。 来自spring documentation的代码:

public interface PersonRepository extends MongoRepository<Person, String>

  @Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : 1, 'lastname' : 1}")
  List<Person> findByThePersonsFirstname(String firstname);

}

我需要一种机制来指定要排除的字段?这是否支持存储库方法?

2 个答案:

答案 0 :(得分:3)

将字段值指定为0. Ex:

public interface PersonRepository extends MongoRepository<Person, String>

  @Query(value="{ 'firstname' : ?0 }", fields="{ 'firstname' : 0}")
  List<Person> findByThePersonsFirstname(String firstname);

}

这不会获取文档的firstname属性,并且返回的java对象中的值将为null。

答案 1 :(得分:0)

findAll查询添加空的过滤条件:

public interface PersonRepository extends MongoRepository<Person, String> {
    @Query(value = "{}", fields = "{ 'firstname' : 0 }")
    List<Person> findAll(Sort sort);
}