spring data mongodb @Query с опцией исключения

Используя класс репозитория Spring Data Mongo, как мы можем объявить метод для возврата документов с несколькими исключенными полями? В справочном документе по данным Spring показан механизм включения полей, но не исключение. Код из документации Spring :

public interface PersonRepository extends MongoRepository<Person, String>

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

}

Мне нужен механизм для указания исключаемых полей? Поддерживается ли это для методов репозитория?


person suman j    schedule 25.03.2014    source источник


Ответы (2)


укажите значение поля как 0. Пример:

public interface PersonRepository extends MongoRepository<Person, String>

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

}

Это не будет извлекать свойство firstname документа, и значение будет нулевым в возвращаемом объекте Java.

person suman j    schedule 25.03.2014

Добавьте пустой критерий фильтра для findAll запроса:

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