Я переключаюсь с Postgres на MongoDB в моем приложении Spring Boot.Мне выпала привилегия иметь возможность запрашивать мою базу данных, используя собственные запросы с помощью аннотации @Query
:
@Query(value = "SELECT id\n" +
"FROM ( \n" +
"SELECT DISTINCT CASE sender WHEN 1 THEN recipient ELSE sender END AS friend_id \n" +
"FROM friendrequest WHERE 1 IN (recipient, sender) \n" +
"AND friendrequeststatus = 'ACCEPTED' \n" +
") f \n" +
"LEFT JOIN users u\n" +
"ON f.friend_id = u.id\n" +
"ORDER BY friend_id \n-- #pageable\n"
,nativeQuery = true)
Page<User> getFriends(Pageable pageable);
В настоящее время я переключаюсь на MongoDB и Inam, используя те же модели.Можно ли писать расширенные собственные запросы, используя метод @Query
, или я вынужден использовать объект Query
:
user = mongoTemplate.findOne(
Query.query(Criteria.where("name").is("Jack")), User.class);
Я задал этот вопрос, потому что я не видел ни одной статьи по сборке.сложные запросы с MongoDB и Spring Boot.