Docs Menu

쿼리 결과 수정

이 가이드 에서는 Laravel MongoDB 쿼리에서 결과를 반환하는 방식을 사용자 지정하는 방법을 학습 수 있습니다. where() 메서드에 더 많은 메서드를 연결하여 찾기 작업의 결과를 수정할 수 있습니다.

다음 섹션에서는 where() 메서드의 동작을 수정하는 방법을 보여줍니다.

  • 건너뛰기 및 결과 제한skip() 메서드를 사용하여 건너뛸 문서 수를 설정하고 take() 메서드를 사용하여 반환할 총 문서 수를 설정합니다.

  • 쿼리 결과 정렬 orderBy() 메서드를 사용하여 필드 값에 따라 지정된 순서로 쿼리 결과를 반환합니다.

Laravel 통합의 Eloquent 모델에 학습 보려면 Eloquent 모델 섹션을 참조하세요.

이 가이드의 코드 예제를 실행하려면 빠른 시작 튜토리얼을 완료하세요. 이 튜토리얼에서는 샘플 데이터를 사용하여 MongoDB Atlas 인스턴스를 설정하고 Laravel 웹 애플리케이션에서 다음 파일을 만드는 방법에 대한 지침을 제공합니다.

  • Movie.php 파일에는 movies collection의 문서를 나타내는 Movie 모델이 포함되어 있습니다.

  • 데이터베이스 작업을 실행하는 show() 함수가 포함된 MovieController.php 파일

  • 데이터베이스 작업 결과를 표시하는 HTML 코드가 포함된 browse_movies.blade.php 파일

다음 섹션에서는 Laravel 애플리케이션에서 파일을 편집하여 찾기 작업 코드 예제를 실행하고 예상 출력을 보는 방법을 설명합니다.

이 예제에서는 year 값이 1999 인 문서를 쿼리합니다. 이 작업은 처음 2 일치하는 문서를 건너뛰고 총 3 개의 문서를 출력합니다.

쿼리를 지정하려면 다음 구문을 사용합니다.

$movies = Movie::where('year', 1999)
->skip(2)
->take(3)
->get();

browse_movies 뷰에서 쿼리 결과를 보려면 MovieController.php 파일 에서 show() 함수를 다음 코드와 유사하게 편집합니다.

class MovieController
{
public function show()
{
$movies = Movie::where('year', 1999)
->skip(2)
->take(3)
->get();
return view('browse_movies', [
'movies' => $movies
]);
}
}
Title: Three Kings
Year: 1999
Runtime: 114
IMDB Rating: 7.2
IMDB Votes: 130677
Plot: In the aftermath of the Persian Gulf War, 4 soldiers set out to steal gold
that was stolen from Kuwait, but they discover people who desperately need their help.
Title: Toy Story 2
Year: 1999
Runtime: 92
IMDB Rating: 7.9
IMDB Votes: 346655
Plot: When Woody is stolen by a toy collector, Buzz and his friends vow to rescue him,
but Woody finds the idea of immortality in a museum tempting.
Title: Beowulf
Year: 1999
Runtime: 95
IMDB Rating: 4
IMDB Votes: 9296
Plot: A sci-fi update of the famous 6th Century poem. In a besieged land, Beowulf must
battle against the hideous creature Grendel and his vengeance seeking mother.

지정된 필드의 값을 기준으로 쿼리 결과의 순서를 지정하려면 where() 메서드를 사용한 다음 orderBy() 메서드를 사용합니다.

결과에 오름차순 또는 내림차순 정렬 방향을 설정할 수 있습니다. 기본적으로 orderBy() 메서드는 제공된 필드 이름에 오름차순 정렬을 설정하지만 "asc" 을 두 번째 매개 변수로 전달하여 오름차순 정렬을 명시적으로 지정할 수 있습니다. 내림차순 정렬을 지정하려면 "desc" 를 두 번째 매개변수로 전달합니다.

문서의 특정 필드에 중복된 값이 포함된 경우 정렬할 필드를 더 지정하여 타이를 처리할 수 있습니다. 이렇게 하면 다른 필드에 고유한 값이 포함된 경우 일관된 결과가 보장됩니다.

이 예제에서는 countries 필드 값에 "Indonesia" 가 포함된 문서를 쿼리하고 먼저 year 필드에서 오름차순 정렬을 수행한 다음 title 필드에서 내림차순 정렬로 결과를 정렬합니다.

쿼리를 지정하려면 다음 구문을 사용합니다.

$movies = Movie::where('countries', 'Indonesia')
->orderBy('year')
->orderBy('title', 'desc')
->get();

browse_movies 뷰에서 쿼리 결과를 보려면 MovieController.php 파일 에서 show() 함수를 다음 코드와 유사하게 편집합니다.

class MovieController
{
public function show()
{
$movies = Movie::where('countries', 'Indonesia')
->orderBy('year')
->orderBy('title', 'desc')
->get();
return view('browse_movies', [
'movies' => $movies
]);
}
}
Title: Joni's Promise
Year: 2005
Runtime: 83
IMDB Rating: 7.6
IMDB Votes: 702
Plot: A film delivery man promises ...
Title: Gie
Year: 2005
Runtime: 147
IMDB Rating: 7.5
IMDB Votes: 470
Plot: Soe Hok Gie is an activist who lived in the sixties ...
Title: Requiem from Java
Year: 2006
Runtime: 120
IMDB Rating: 6.6
IMDB Votes: 316
Plot: Setyo (Martinus Miroto) and Siti (Artika Sari Dewi)
are young married couple ...
...

정렬에 대해 자세히 알아보려면 다음 리소스를 참조하세요.

Laravel 통합을 사용하여 찾기 작업을 수행하는 방법을 보여주는 실행 가능한 코드 예제를 보려면 다음 사용 예제를 참조하세요.

필터하다 기준에 따라 데이터를 조회 방법을 학습 데이터 검색 가이드 참조하세요.