개요
이 가이드 에서는 Laravel 통합을 사용하여 MongoDB 컬렉션 에서 문서를 삭제 방법을 학습 수 있습니다. 삭제 작업을 사용하여 MongoDB database 에서 데이터를 제거 .
이 섹션에서는 다음 삭제 작업의 예를 제공합니다.
샘플 모델
이 가이드 의 작업은 다음 Eloquent 모델 클래스를 참조합니다:
namespace App\Models; use MongoDB\Laravel\Eloquent\Model; class Concert extends Model { protected $connection = 'mongodb'; protected $fillable = ['performer', 'venue', 'genres', 'ticketsSold', 'performanceDate']; protected $casts = ['performanceDate' => 'datetime']; }
팁
$fillable 속성을 사용하면 삽입 작업에 Laravel 대량 할당을 사용할 수 있습니다. 대량 할당에 학습 보려면 Eloquent 모델 클래스 문서에서 대량 할당 사용자 지정 을 참조하세요.
$casts 속성은 속성을 일반적인 데이터 유형으로 변환하도록 Laravel에 지시합니다. 자세히 학습 Laravel 문서에서 속성 캐스팅을 참조하세요.
문서 하나 삭제
다음과 같은 방법으로 문서 하나를 삭제할 수 있습니다.
모델의 인스턴스에서
$model->delete()메서드를 호출합니다.delete()메서드를 호출하여 모델의 인스턴스를 검색하고 삭제하는 체인 메서드입니다.모델에서
Model::destroy($id)메서드를 호출하여 삭제할 문서 의_id값을 전달합니다.
삭제() 메서드
다음 예에서는 모델의 인스턴스에서 $model->delete() 를 호출하여 문서를 삭제하는 방법을 보여 줍니다.
$concert = Concert::first(); $concert->delete();
delete() 메서드가 성공하면 작업이 삭제된 문서 수를 반환합니다.
호출의 검색 부분이 컬렉션의 문서와 일치하지 않으면 작업은 0 을 반환합니다.
다음 예에서는 일치하는 첫 번째 문서를 검색하고 삭제하기 위해 호출을 연결하는 방법을 보여줍니다.
Concert::where('venue', 'Carnegie Hall') ->limit(1) ->delete();
참고
orderBy() 호출은 일관된 정렬 순서를 보장하기 위해 _id 필드를 기준으로 결과를 정렬합니다. MongoDB 정렬에 대해 자세히 알아보려면 MongoDB 서버 매뉴얼의 기본 순서 용어집 항목을 참조하세요.
delete() 메서드가 성공하면 삭제된 문서 수를 반환합니다.
where() 메서드가 어떤 문서와도 일치하지 않으면 delete() 메서드는 0 를 반환합니다.
파괴() 메서드
다음 예시 _id 값의 값을 Model::destroy($id) 메서드에 전달하여 문서 삭제 방법을 보여 줍니다.
$id = 'MSG-0212252000'; Concert::destroy($id);
destroy() 메서드가 성공하면 삭제된 문서 수를 반환합니다.
_id 값이 어떤 문서와도 일치하지 않으면 destroy() 메서드는 0를 반환합니다.
여러 문서 삭제
다음과 같은 방법으로 여러 문서를 삭제할 수 있습니다.
Model::destroy($ids)메서드를 호출하여 삭제할 문서 또는 모델 인스턴스의 ID 목록을 전달합니다.여러 객체를 참조하는 Laravel 컬렉션 객체를 검색하고
delete()메서드를 호출하여 삭제하는 메서드를 체인으로 연결합니다.
파괴() 메서드
다음 예시 $ids로 표시되는 _id 값의 배열 destroy() 메서드에 전달하여 문서 삭제 방법을 보여 줍니다.
$ids = [3, 5, 7, 9]; Concert::destroy($ids);
팁
큰 목록을 전달하면 destroy() 메서드 성능이 저하됩니다. 성능을 향상하려면 Model::whereIn('id', $ids)->delete() 를 대신 사용하세요.
destroy() 메서드가 성공하면 삭제된 문서 수를 반환합니다.
_id 값이 어떤 문서와도 일치하지 않으면 destroy() 메서드는 0를 반환합니다.
삭제() 메서드
다음 예는 일치하는 문서를 검색하고 삭제하기 위해 호출을 연결하는 방법을 보여줍니다.
Concert::where('ticketsSold', '>', 7500) ->delete();
delete() 메서드가 성공하면 삭제된 문서 수를 반환합니다.
where() 메서드가 어떤 문서와도 일치하지 않으면 delete() 메서드는 0 를 반환합니다.
완전 실행 가능한 예시
다음 섹션에서는 Laravel 통합을 사용하여 문서를 삭제 방법을 보여주는 완전히 실행 가능한 코드 예제를 제공합니다. 이 예제에서는 sample_mflix.movies Atlas 샘플 데이터 세트의 컬렉션 사용합니다.
팁
전체 예제는 자체 Laravel 애플리케이션 또는 my-app 시작하기 튜토리얼에서 만든 애플리케이션 에서 실행 수 있습니다. 예제에서는 Movie.php 이 튜토리얼에서 만든 모델 클래스를 사용하여 movies MongoDB 컬렉션 에 대한 작업을 시연합니다. 작업을 실행 하려면 샘플 코드를 Laravel 애플리케이션 의 컨트롤러 엔드포인트에 복사하면 됩니다.
작업의 예상 출력을 보려면 컨트롤러 함수를 호출하고 결과를 웹 인터페이스에 반환하는 웹 경로를 애플리케이션 에 추가하면 됩니다.
문서 삭제
다음 Eloquent 및 Query Builder 탭에서 선택하여 각 쿼리 구문에 대한 예제를 볼 수 있습니다.
이 예에서는 다음 조치를 수행합니다.
MovieEloquent 모델을 사용하여sample_mflix데이터베이스의movies컬렉션을 나타냅니다.쿼리 필터와 일치하는
movies컬렉션에서 문서를 삭제합니다.삭제된 문서 수를 출력합니다.
이 예시에서는 Movie 모델에서 다음 메서드를 호출합니다.
where():title필드 의 값이"Quiz Show"인 문서와 일치합니다.limit(): 일치하는 첫 번째 문서 만 조회합니다.delete(): 조회된 문서 삭제합니다.
$deleted = Movie::where('title', 'Quiz Show') ->limit(1) ->delete(); echo 'Deleted documents: ' . $deleted;
Deleted documents: 1
이 예에서는 다음 조치를 수행합니다.
DB파사드에서table()메서드를 호출하여movies컬렉션 에 액세스합니다.쿼리 필터와 일치하는
movies컬렉션에서 문서를 삭제합니다.삭제된 문서 수를 출력합니다.
이 예시 다음 쿼리 빌더 메서드를 호출합니다.
where():title필드 의 값이"Quiz Show"인 문서와 일치합니다.limit(): 일치하는 첫 번째 문서 만 조회합니다.delete(): 조회된 문서 삭제합니다.
$deleted = DB::table('movies') ->where('title', 'Quiz Show') ->limit(1) ->delete(); echo 'Deleted documents: ' . $deleted;
Deleted documents: 1
여러 문서 삭제
다음 Eloquent 및 Query Builder 탭에서 선택하여 각 쿼리 구문에 대한 예제를 볼 수 있습니다.
이 예에서는 다음 조치를 수행합니다.
MovieEloquent 모델을 사용하여sample_mflix데이터베이스의movies컬렉션을 나타냅니다.쿼리 필터와 일치하는
movies컬렉션에서 문서를 삭제합니다.삭제된 문서 수를 출력합니다.
이 예시에서는 Movie 모델에서 다음 메서드를 호출합니다.
where():year필드 의 값이1910보다 작거나 같은 문서를 일치시킵니다.delete(): 일치하는 문서를 삭제하고 성공적으로 삭제된 문서 수를 반환합니다.
$deleted = Movie::where('year', '<=', 1910) ->delete(); echo 'Deleted documents: ' . $deleted;
Deleted documents: 7
이 예에서는 다음 조치를 수행합니다.
DB파사드에서table()메서드를 호출하여movies컬렉션 에 액세스합니다.쿼리 필터와 일치하는
movies컬렉션에서 문서를 삭제합니다.삭제된 문서 수를 출력합니다.
이 예시 다음 쿼리 빌더 메서드를 호출합니다.
where():year필드 의 값이1910보다 작거나 같은 문서를 일치시킵니다.delete(): 일치하는 문서를 삭제하고 성공적으로 삭제된 문서 수를 반환합니다.
$deleted = DB::table('movies') ->where('year', '<=', 1910) ->delete(); echo 'Deleted documents: ' . $deleted;
Deleted documents: 7
추가 정보
삭제 동작을 수정하는 Laravel 통합에서 사용할 수 있는 Laravel 기능에 학습 보려면 다음 섹션을 참조하세요.
MongoDB 컬렉션 에 문서를 삽입하는 방법을 학습 문서 삽입 가이드 참조하세요.