쿼리 빌더
이 페이지의 내용
- 개요
- 시작하기 전에
- 일치하는 문서 조회
- Where 메서드 예제
- 논리적 조건부 연산
- 범위 및 유형 검사
- 텍스트 패턴 일치 예시
- Retrieve Distinct Values
- 집계
- 쿼리 결과 수정
- 주문 결과 예시
- 지정된 수의 결과 생략 예시
- 결과 예제에 필드 및 배열 값의 하위 집합 표시
- 결과 페이지 매김 예시
- MongoDB 작업을 사용하여 데이터 검색
- 필드 예시 포함
- 모든 필드 포함 예시
- 배열 크기 일치 예시
- 데이터 유형 일치 예시
- 모듈로 예제로 계산된 값 일치
- 정규식 일치
- MongoDB 쿼리 API 작업 실행 예시
- 배열 요소 일치 예시
- 커서 시간 초과 지정 예시
- 지리 공간적 작업을 사용하여 위치 일치
- 근거리 위치 예시
- 영역 내 예시
- 지오메트리 교차 예시
- 주변 일치 항목에 대한 근접 데이터 예시
- MongoDB 쓰기 작업을 사용하여 데이터 쓰기
- 문서 예시 업로드
- 숫자 값 증가 예제
- 숫자 값 감소 예시
- 배열 요소 추가 예제
- 배열 요소 제거 예제
- 필드 제거 예시
개요
이 가이드에서는 Laravel 쿼리 빌더의 Laravel MongoDB 확장을 사용하여 MongoDB database 로 작업하는 방법을 배울 수 있습니다. 쿼리 빌더를 사용하면 단일 구문과 유창한 인터페이스를 사용하여 지원되는 모든 데이터베이스에 대한 쿼리를 작성할 수 있습니다.
참고
Laravel MongoDB 는 유사한 데이터베이스 작업을 실행 수 있는 Laravel의 쿼리 빌더와 Eloquent ORM을 확장합니다. Eloquent 모델을 사용하여 문서를 검색하는 방법에 학습 보려면 읽기 작업을 참조하세요.
Laravel은 데이터베이스 작업을 수행할 수 있는 쿼리 빌더 클래스 DB
에 액세스할 수 있는 파사드 를 제공합니다. 클래스에 대한 정적 인터페이스인 Facade는 구문을 더 간결하게 만들고 런타임 오류를 방지하며 테스트 가능성을 향상시킵니다.
Laravel MongoDB는 DB
메서드 table()
의 별칭을 collection()
메서드로 지정합니다. 명령 및 제약 조건을 지정하는 체인 메서드. 그런 다음 끝에 get()
메서드를 연결하여 메서드를 실행하고 결과를 검색합니다. 다음 예시는 쿼리 빌더 호출의 구문을 보여줍니다.
DB::collection('<collection name>') // chain methods by using the "->" object operator ->get();
팁
DB::collection()
메서드를 사용하기 전에 MongoDB를 애플리케이션의 기본 데이터베이스 연결로 지정해야 합니다. 데이터베이스 연결 설정에 대한 지침은 빠른 시작 의 MongoDB 연결 구성 단계를 참조하세요.
MongoDB가 애플리케이션의 기본 데이터베이스가 아닌 경우 DB::connection()
메서드를 사용하여 MongoDB 연결을 지정할 수 있습니다. 다음 코드에 표시된 대로 연결 이름을 connection()
메서드에 전달합니다.
$connection = DB::connection('mongodb');
이 가이드에서는 다음과 같은 유형의 쿼리 빌더 작업에 대한 예를 제공합니다.
시작하기 전에
이 가이드의 코드 예제를 실행하려면 빠른 시작 튜토리얼을 완료하여 웹 애플리케이션을 구성하고, 샘플 데이터 세트를 MongoDB deployment에 로드하고, 컨트롤러 메서드에서 예제 코드를 실행합니다. 예상 코드 출력을 JSON 문서로 보려면 빠른 시작의 선택 사항인 결과를 JSON 문서로 보기 단계에 표시된 toJson()
메서드를 사용합니다.
쿼리 빌더를 사용하여 읽기 및 쓰기 작업을 수행하려면 Illuminate\Support\Facades\DB
파사드를 가져오고 쿼리를 작성합니다.
일치하는 문서 조회
이 섹션에는 다음 연산자 카테고리의 읽기 작업에 대한 쿼리 빌더 예제가 포함되어 있습니다.
Where 메서드 예제
다음 예시에서는 where()
쿼리 빌더 메서드를 사용하여 movies
컬렉션에서 정확히 9.3
의 imdb.rating
필드 값을 포함하는 문서를 검색하는 방법을 보여 줍니다. 쿼리에서 반환된 결과를 보려면 VIEW OUTPUT 버튼을 클릭합니다.
$result = DB::connection('mongodb') ->collection('movies') ->where('imdb.rating', 9.3) ->get();
논리적 조건부 연산
이 섹션의 예제에서는 다음과 같은 논리적 조건부 작업을 수행하는 데 사용할 수 있는 쿼리 빌더 구문을 보여줍니다.
논리 OR 예제
다음 예제에서는 orWhere()
쿼리 빌더 메서드를 체인으로 연결하여 movies
컬렉션에서 1955
의 year
값과 일치하거나 title
값 "Back to the Future"
과 일치하는 문서를 검색하는 방법을 보여 줍니다.
$result = DB::connection('mongodb') ->collection('movies') ->where('year', 1955) ->orWhere('title', 'Back to the Future') ->get();
논리 AND 예제
다음 예에서는 where()
쿼리 빌더 메서드를 체인으로 연결하여 movies
컬렉션에서 8.5
보다 큰 imdb.rating
값과 1940
보다 작은 year
값 모두와 일치하는 문서를 검색하는 방법을 보여 줍니다.
$result = DB::connection('mongodb') ->collection('movies') ->where('imdb.rating', '>', 8.5) ->where('year', '<', 1940) ->get();
논리적 NOT 예제
다음 예에서는 whereNot()
쿼리 빌더 메서드를 호출하여 movies
컬렉션에서 2
보다 큰 imdb.rating
값이 없는 문서와 일치하는 문서를 검색하는 방법을 보여 줍니다. 이는 imdb.rating
가 2
이하인 모든 문서를 일치시키는 것과 같습니다.
$result = DB::connection('mongodb') ->collection('movies') ->whereNot('imdb.rating', '>', 2) ->get();
중첩된 논리 연산자 그룹 예제
다음 예제에서는 where()
쿼리 빌더 메서드를 연결하여 movies
컬렉션에서 다음 두 조건과 모두 일치하는 문서를 검색하는 방법을 보여 줍니다. 이 예에서는 where()
쿼리 빌더 메서드의 첫 번째 매개 변수로 클로저를 전달하여 논리적 OR 그룹을 그룹화합니다.
imdb.rating
값이 다음보다 큼8.5
year
값이1986
또는1996
경우
$result = DB::connection('mongodb') ->collection('movies') ->where('imdb.rating', '>', 8.5) ->where(function (Builder $query) { return $query ->where('year', 1986) ->orWhere('year', 1996); })->get();
범위 및 유형 검사
이 섹션의 예제에서는 다음 범위 쿼리 및 유형 검사 작업을 사용하여 값을 일치시키는 데 사용할 수 있는 쿼리 빌더 구문을 보여줍니다.
숫자 범위 예제
다음 예제에서는 whereBetween()
쿼리 빌더 메서드를 사용하여 9
에서 9.5
사이의 imdb.rating
값을 포함하는 movies
컬렉션에서 문서를 조회하는 방법을 보여 줍니다.
$result = DB::connection('mongodb') ->collection('movies') ->whereBetween('imdb.rating', [9, 9.5]) ->get();
Null 또는 누락된 값 예시
다음 예에서는 whereNull()
쿼리 빌더 메서드를 사용하여 runtime
값 또는 필드가 생략된 movies
컬렉션에서 문서를 검색하는 방법을 보여 줍니다.
$result = DB::connection('mongodb') ->collection('movies') ->whereNull('runtime') ->get();
하나 이상의 값 집합 예제
다음 예제에서는 whereIn()
쿼리 빌더 메서드를 사용하여 지정된 집합의 title
값 중 하나 이상과 일치하는 movies
컬렉션에서 문서를 검색하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->whereIn('title', ['Toy Story', 'Shrek 2', 'Johnny English']) ->get();
일치 날짜 예시
다음 예제에서는 whereDate()
쿼리 빌더 메서드를 사용하여 released
필드에 지정된 2010-1-15
날짜와 일치하는 movies
컬렉션의 문서를 검색하는 방법을 보여 줍니다.
$result = DB::connection('mongodb') ->collection('movies') ->whereDate('released', '2010-1-15') ->get();
텍스트 패턴 일치 예시
다음 예제에서는 like
쿼리 연산자를 where()
쿼리 빌더 메서드와 함께 사용하여 지정된 텍스트 패턴을 사용하여 movies
컬렉션에서 문서를 검색하는 방법을 보여 줍니다.
텍스트 패턴에는 다음 와일드카드 문자가 혼합된 텍스트가 포함될 수 있습니다.
%
0개 이상의 문자와 일치_
단일 문자와 일치하는
$result = DB::collection('movies') ->where('title', 'like', '%spider_man%') ->get();
Retrieve Distinct Values
다음 예제에서는 distinct()
쿼리 빌더 메서드를 사용하여 movies
컬렉션에 있는 문서에 대해 year
필드의 다양한 값을 모두 조회하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->distinct('year')->get();
집계
이 섹션의 예제에서는 애그리게이션 을 수행하는 데 사용할 수 있는 쿼리 빌더 구문을 보여줍니다. 애그리게이션은 쿼리 결과 데이터 세트에서 값을 계산하는 작업입니다. 애그리게이션을 사용하여 다음 정보를 계산하고 반환할 수 있습니다.
공통 필드 값별로 그룹화된 결과 예시
다음 예제에서는 groupBy()
쿼리 빌더 메서드를 사용하여 runtime
필드의 공유 값별로 그룹화된 문서 데이터를 검색하는 방법을 보여 줍니다. 이 예에서는 G
의 rated
값을 포함하고 각 고유 runtime
값에 대해 한 영화의 title
필드를 포함하는 movies
컬렉션의 문서를 일치시키기 위해 다음 작업을 연결합니다.
where()
메서드를 사용하여"G"
의rated
필드 값을 포함하는 문서만 일치시킵니다.groupBy()
메서드를 사용하여_id
필드에 할당된runtime
필드의 고유 값을 기준으로 데이터를 그룹화합니다.orderBy()
메서드를 사용하여runtime
필드를 기준으로 그룹을 정렬합니다.get()
메서드에 지정하여 그룹화된 결과의 마지막 문서에서title
데이터를 반환합니다.
팁
groupBy()
메서드는 MongoDB $group
애그리게이션 연산자와 $last
축적자 연산자를 호출합니다. 이러한 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼에서 $group(애그리게이션) 을 참조하세요.
$result = DB::collection('movies') ->where('rated', 'G') ->groupBy('runtime') ->orderBy('runtime', 'asc') ->get(['title']);
결과 수 예시
다음 예에서는 count()
쿼리 빌더 메서드를 사용하여 movies
컬렉션에 포함된 문서 수를 반환하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->count();
필드 예시의 최대값
다음 예에서는 max()
쿼리 빌더 메서드를 사용하여 전체 movies
컬렉션에서 runtime
필드의 가장 높은 숫자 값을 반환하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->max('runtime');
필드의 최소값 예제
다음 예에서는 min()
쿼리 빌더 메서드를 사용하여 전체 movies
컬렉션에서 year
필드의 가장 낮은 숫자 값을 반환하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->min('year');
필드 예시의 평균값
다음 예제에서는 avg()
쿼리 빌더 메서드를 사용하여 전체 movies
컬렉션에서 imdb.rating
값의 수치 평균 또는 산술 평균을 반환하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->avg('imdb.rating');
필드의 합계 값 예시
다음 예제에서는 sum()
쿼리 빌더 메서드를 사용하여 전체 movies
컬렉션에서 imdb.votes
값의 합계를 숫자로 반환하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->sum('imdb.votes');
일치하는 결과 집계 예시
다음 예는 쿼리와 일치하는 결과에서 데이터를 애그리게이션하는 방법을 보여줍니다. 이 쿼리는 2000
년 이후의 모든 영화를 일치시키고 avg()
메서드를 사용하여 해당 일치 항목의 imdb.rating
평균값을 계산합니다.
$result = DB::collection('movies') ->where('year', '>', 2000) ->avg('imdb.rating');
쿼리 결과 수정
이 섹션에는 쿼리 결과의 순서와 형식을 수정하는 다음 함수에 대한 쿼리 빌더 예제가 포함되어 있습니다.
주문 결과 예시
다음 예에서는 orderBy()
쿼리 빌더 메서드를 사용하여 title
필드에 지정된 필터와 일치하는 결과를 imdb.rating
값을 기준으로 내림차순으로 정렬하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('title', 'like', 'back to the future%') ->orderBy('imdb.rating', 'desc') ->get();
지정된 수의 결과 생략 예시
다음 예에서는 skip()
쿼리 빌더 메서드를 사용하여 title
필드에 지정된 필터와 일치하는 처음 4개의 결과를 생략하고 year
값을 기준으로 오름차순으로 정렬하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('title', 'like', 'star trek%') ->orderBy('year', 'asc') ->skip(4) ->get();
결과 예제에 필드 및 배열 값의 하위 집합 표시
다음 예에서는 project()
쿼리 빌더 메서드를 사용하여 imdb.rating
값이 8.5
보다 큰 문서를 일치시키고 다음 필드 값만 반환하는 방법을 보여 줍니다.
영화 제목
title
cast
배열 필드의 두 번째 값부터 네 번째 값까지(있는 경우)자동으로 포함되는 문서
_id
필드
$result = DB::collection('movies') ->where('imdb.rating', '>', 8.5) ->project([ 'title' => 1, 'cast' => ['$slice' => [1, 3]], ]) ->get();
결과 페이지 매김 예시
다음 예제에서는 paginate()
쿼리 빌더 메서드를 사용하여 전체 movie
컬렉션을 15 문서의 불연속적인 결과 세트로 나누는 방법을 보여 줍니다. 이 예제에는 imdb.votes
필드를 기준으로 결과를 내림차순으로 정렬하는 정렬 순서와 결과에 특정 필드만 포함하는 프로젝션도 포함되어 있습니다.
$resultsPerPage = 15; $projectionFields = ['title', 'runtime', 'imdb.rating']; $result = DB::collection('movies') ->orderBy('imdb.votes', 'desc') ->paginate($resultsPerPage, $projectionFields);
페이지 매김에 대해 자세히 알아보려면 페이지 매김 쿼리 빌더 결과 를 참조하세요. Laravel 문서에서 확인할 수 있습니다.
MongoDB 작업을 사용하여 데이터 검색
이 섹션에는 다음과 같은 MongoDB 관련 쿼리 작업을 사용하는 방법을 보여주는 쿼리 빌더 예제가 포함되어 있습니다.
필드 예시 포함
다음 예에서는 exists()
쿼리 빌더 메서드를 사용하여 random_review
필드가 포함된 문서를 일치시키는 방법을 보여 줍니다.
$result = DB::collection('movies') ->exists('random_review', true);
이 쿼리 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼에서 $exists 를 참조하세요.
모든 필드 포함 예시
다음 예에서는 all
쿼리 연산자를 where()
쿼리 빌더 메서드와 함께 사용하여 지정된 모든 필드가 포함된 문서를 일치시키는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('movies', 'all', ['title', 'rated', 'imdb.rating']) ->get();
이 쿼리 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼에서 $all 을 참조하세요.
배열 크기 일치 예시
다음 예에서는 정확히 5개의 요소로 구성된 배열을 포함하는 directors
필드가 포함된 문서와 일치하도록 where()
쿼리 빌더 메서드와 함께 size
쿼리 연산자를 전달하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('directors', 'size', 5) ->get();
이 쿼리 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼에서 $size 를 참조하세요.
데이터 유형 일치 예시
다음 예제에서는 type
쿼리 연산자를 where()
쿼리 빌더 메서드와 함께 전달하여 released
필드의 배열 데이터 유형에 해당하는 4
유형 값이 포함된 문서를 일치시키는 방법을 보여줍니다.
$result = DB::collection('movies') ->where('released', 'type', 4) ->get();
유형 코드 및 쿼리 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼의 $type 을 참조하세요.
모듈로 예제로 계산된 값 일치
다음 예에서는 year
필드의 짝수 값과 일치하는 표현식 year % 2 == 0
을 사용하여 문서를 일치시키기 위해 where()
쿼리 빌더 메서드와 함께 mod
쿼리 연산자를 전달하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('year', 'mod', [2, 0]) ->get();
이 쿼리 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼에서 $mod 를 참조하세요.
정규식 일치
다음 예에서는 지정된 정규 표현식과 일치하는 title
필드가 포함된 문서를 일치시키기 위해 where()
쿼리 빌더 메서드와 함께 REGEX
쿼리 연산자를 전달하는 방법을 보여 줍니다.
$result = DB::connection('mongodb') ->collection('movies') ->where('title', 'REGEX', new Regex('^the lord of .*', 'i')) ->get();
MongoDB 의 정규 표현식 쿼리에 대해 자세히 알아보려면 MongoDB 서버 매뉴얼에서 $regex 를 참조하세요.
MongoDB 쿼리 API 작업 실행 예시
다음 예제에서는 whereRaw()
쿼리 빌더 메서드를 사용하여 MongoDB 쿼리 API 구문으로 작성된 쿼리 작업을 실행하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->whereRaw([ 'imdb.votes' => ['$gte' => 1000 ], '$or' => [ ['imdb.rating' => ['$gt' => 7]], ['directors' => ['$in' => [ 'Yasujiro Ozu', 'Sofia Coppola', 'Federico Fellini' ]]], ], ])->get();
다음 코드는 이에 상응하는 MongoDB 쿼리 API 구문을 보여줍니다.
db.movies.find({ "imdb.votes": { $gte: 1000 }, $or: [{ imdb.rating: { $gt: 7 }, directors: { $in: [ "Yasujiro Ozu", "Sofia Coppola", "Federico Fellini" ] } }]});
MongoDB MongoDB Query API MongoDB API에 API 대해 자세히 알아보려면 MongoDB Server 매뉴얼의 참조하세요.
배열 요소 일치 예시
다음 예에서는 지정된 쿼리의 조건 중 하나 이상과 일치하는 배열 요소가 포함된 문서를 일치시키기 위해 where()
쿼리 빌더 메서드와 함께 elemMatch
쿼리 연산자를 전달하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('writers', 'elemMatch', ['$in' => ['Maya Forbes', 'Eric Roth']]) ->get();
MongoDB 의 정규 표현식 쿼리에 대해 자세히 알아보려면 MongoDB 서버 매뉴얼에서 $elemMatch 연산자 를 참조하세요.
커서 시간 초과 지정 예시
다음 예제에서는 timeout()
메서드를 사용하여 커서 작업이 완료될 때까지 대기할 최대 기간을 지정하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->timeout(2) // value in seconds ->where('year', 2001) ->get();
참고
이 설정은 maxTimeMS
값을 밀리초가 아닌 초 단위로 지정합니다. maxTimeMS
값에 대해 자세히 알아보려면 PHP 라이브러리 문서에서 MongoDBCollection::find() 을 참조하세요.
지리 공간적 작업을 사용하여 위치 일치
이 섹션의 예제에서는 GeoJSON 또는 좌표 쌍 데이터에 대한 지리 공간적 쿼리를 수행하여 다음 유형의 위치를 검색하는 데 사용할 수 있는 쿼리 빌더 구문을 보여 줍니다.
중요
MongoDB에서 GeoJSON 쿼리를 수행하려면 컬렉션에 2d
또는 2dsphere
인덱스를 생성해야 합니다. 지리 공간적 인덱스를 만드는 방법을 알아보려면 스키마 빌더 가이드의 지리 공간적 인덱스 만들기 섹션을 참조하세요.
GeoJSON 가 지원하는 객체에 대해 MongoDB 자세히 알아보려면 MongoDB Server 매뉴얼에서 객체 를 GeoJSON 참조하세요.
근거리 위치 예시
다음 예에서는 near
쿼리 연산자를 where()
쿼리 빌더 메서드와 함께 사용하여 GeoJSON 포인트 객체에서 최대 50
미터 떨어진 위치가 포함된 문서를 일치시키는 방법을 보여 줍니다.
$results = DB::collection('theaters') ->where('location.geo', 'near', [ '$geometry' => [ 'type' => 'Point', 'coordinates' => [ -86.6423, 33.6054, ], ], '$maxDistance' => 50, ])->get();
이 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼에서 $near 연산자 를 참조하세요.
영역 내 예시
다음 예제에서는 geoWithin
쿼리 연산자를 where()
쿼리 빌더 메서드와 함께 사용하여 지정된 Polygon
GeoJSON 객체의 경계 내에 있는 위치가 포함된 문서를 일치시키는 방법을 보여 줍니다.
$results = DB::collection('theaters') ->where('location.geo', 'geoWithin', [ '$geometry' => [ 'type' => 'Polygon', 'coordinates' => [ [ [-72, 40], [-74, 41], [-72, 39], [-72, 40], ], ], ], ])->get();
지오메트리 교차 예시
다음 예제에서는 geoInstersects
쿼리 연산자를 where()
쿼리 빌더 메서드와 함께 사용하여 지정된 LineString
GeoJSON 객체와 교차하는 위치가 포함된 문서를 일치시키는 방법을 보여 줍니다.
$results = DB::collection('theaters') ->where('location.geo', 'geoIntersects', [ '$geometry' => [ 'type' => 'LineString', 'coordinates' => [ [-73.600525, 40.74416], [-72.600525, 40.74416], ], ], ])->get();
주변 일치 항목에 대한 근접 데이터 예시
다음 예에서는 geoNear
애그리게이션 연산자를 raw()
쿼리 빌더 메서드와 함께 사용하여 각 일치 항목에 대한 근접성 정보와 같은 메타데이터를 반환하는 애그리게이션을 수행하는 방법을 보여 줍니다.
$results = DB::collection('theaters')->raw( function (Collection $collection) { return $collection->aggregate([ [ '$geoNear' => [ 'near' => [ 'type' => 'Point', 'coordinates' => [-118.34, 34.10], ], 'distanceField' => 'dist.calculated', 'maxDistance' => 500, 'includeLocs' => 'dist.location', 'spherical' => true, ], ], ]); }, )->toArray();
이 애그리게이션 연산자에 대해 자세히 알아보려면 MongoDB Server 매뉴얼에서 $geoNear 연산자 를 참조하세요.
MongoDB 쓰기 작업을 사용하여 데이터 쓰기
이 섹션에는 다음과 같은 MongoDB 전용 쓰기 작업을 사용하는 방법을 보여주는 쿼리 빌더 예제가 포함되어 있습니다.
문서 예시 업로드
다음 예에서는 update()
쿼리 빌더 메서드 및 upsert
옵션을 사용하여 일치하는 문서를 업데이트하거나 지정된 데이터가 없는 경우 해당 문서를 삽입하는 방법을 보여 줍니다. upsert
옵션을 true
로 설정했는데 문서가 존재하지 않는 경우 명령은 데이터와 where()
쿼리 작업에 지정된 title
필드 및 값을 모두 삽입합니다.
$result = DB::collection('movies') ->where('title', 'Will Hunting') ->update( [ 'plot' => 'An autobiographical movie', 'year' => 1998, 'writers' => [ 'Will Hunting' ], ], ['upsert' => true], );
update()
쿼리 빌더 메서드는 작업이 업데이트하거나 삽입한 문서 수를 반환합니다.
숫자 값 증가 예제
다음 예에서는 increment()
쿼리 빌더 메서드를 사용하여 일치하는 문서의 imdb.votes
필드 값에 3000
을(를) 추가하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('title', 'Field of Dreams') ->increment('imdb.votes', 3000);
increment()
쿼리 빌더 메서드는 작업이 업데이트한 문서 수를 반환합니다.
숫자 값 감소 예시
다음 예에서는 decrement()
쿼리 빌더 메서드를 사용하여 일치하는 문서의 imdb.rating
필드 값에서 0.2
를 빼는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('title', 'Sharknado') ->decrement('imdb.rating', 0.2);
decrement()
쿼리 빌더 메서드는 작업이 업데이트한 문서 수를 반환합니다.
배열 요소 추가 예제
다음 예에서는 push()
쿼리 빌더 메서드를 사용하여 일치하는 문서의 cast
배열 필드에 "Gary Cole"
을(를) 추가하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('title', 'Office Space') ->push('cast', 'Gary Cole');
push()
쿼리 빌더 메서드는 작업이 업데이트한 문서 수를 반환합니다.
배열 요소 제거 예제
다음 예에서는 pull()
쿼리 빌더 메서드를 사용하여 쿼리와 일치하는 문서의 genres
필드에서 "Adventure"
값을 제거하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('title', 'Iron Man') ->pull('genres', 'Adventure');
pull()
쿼리 빌더 메서드는 작업이 업데이트한 문서 수를 반환합니다.
필드 제거 예시
다음 예에서는 unset()
쿼리 빌더 메서드를 사용하여 쿼리와 일치하는 문서에서 tomatoes.viewer
필드와 값을 제거하는 방법을 보여 줍니다.
$result = DB::collection('movies') ->where('title', 'Final Accord') ->unset('tomatoes.viewer');
unset()
쿼리 빌더 메서드는 작업이 업데이트한 문서 수를 반환합니다.