Docs Menu
Docs Home
/ / /
PHP 라이브러리 매뉴얼
/ /

MongoDB\Collection::insertMany()

이 페이지의 내용

  • 정의
  • 매개변수
  • Return Values
  • 오류/예외
  • 행동
  • 예시
  • 다음도 참조하세요.
MongoDB\Collection::insertMany()

여러 문서를 삽입합니다.

function insertMany(
array $documents,
array $options = []
): MongoDB\InsertManyResult
$documents : 배열
collection에 삽입할 문서입니다.
$options : 배열

원하는 옵션을 지정하는 배열입니다.

이름
유형
설명
bypassDocumentValidation
부울
true인 경우 쓰기 작업이 문서 수준 유효성 검사를 우회하도록 허용합니다. 기본값은 false입니다.
코덱
MongoDB\Codec\DocumentCodec

문서 인코딩 또는 디코딩에 사용할 코덱 입니다. 이 옵션은 typeMap 옵션과 상호 배타적입니다.

컬렉션의 코덱을 기본값으로 설정합니다. 기본 codec 옵션의 상속은 typeMap 옵션의 상속보다 우선합니다.

버전 1.17에 추가 되었습니다.

comment
혼합

사용자가 데이터베이스 프로파일러, currentOp 출력 및 로그를 통해 작업을 추적하는 데 도움이 되는 임의의 주석을 지정할 수 있습니다.

이 옵션은 MongoDB 4.4부터 사용할 수 있으며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.

버전 1.13에 새로 추가되었습니다.

주문됨
부울

true 인 경우: 단일 쓰기가 실패하면 나머지 쓰기를 수행하지 않고 작업이 중지되고 예외가 발생합니다.

false 인 경우: 단일 쓰기가 실패하면 나머지 쓰기(있는 경우)를 사용하여 작업을 계속하고 예외를 발생시킵니다.

기본값은 true입니다.

Session

작업과 연결할 클라이언트 세션입니다.

버전 1.3에 새로 추가되었습니다.

쓰기 고려

작업에 사용할 고려를 씁니다 . 기본값은 컬렉션의 쓰기 고려입니다.

트랜잭션의 일부로 개별 작업에 대한 쓰기 고려를 지정할 수 없습니다. 대신 트랜잭션을시작할 때 writeConcern 옵션을 설정합니다.

MongoDB\Driver\WriteResult MongoDB\InsertManyResult 를 캡슐화하는 객체 객체.

MongoDB\Exception\InvalidArgumentException 매개변수 또는 옵션의 구문 분석과 관련된 오류의 경우입니다.

MongoDB\Driver\Exception\BulkWriteException 쓰기 작업과 관련된 오류의 경우. 사용자는 getWriteResult() 가 반환한 값을 검사해야 합니다. 오류의 특성을 확인합니다.

MongoDB\ 드라이버\Exception\RuntimeException 확장 수준의 다른 오류(예: 연결 오류).

MongoDB\Driver\Exception\BulkWriteException이 이 발생하면 사용자는 getWriteResult() 를 호출해야 합니다. 반환된 MongoDB\Driver\WriteResult 를 검사합니다. 객체를 사용하여 오류의 특성을 확인합니다.

예를 들어 쓰기 작업이 프라이머리 서버에 성공적으로 적용되었지만 쓰기 고려를 충족하지 못했을 수 있습니다(예시: 복제가 너무 오래 걸렸습니다). 또는 쓰기 작업이 완전히 실패했을 수 있습니다(예시: 고유 키 위반).

대량 쓰기의 경우 결과는 여러 번의 성공적인 쓰기 작업 및/또는 오류를 나타낼 수 있습니다. ordered 옵션이 true 인 경우 첫 번째 오류가 발생하고 예외가 발생하기 전에 일부 작업이 성공했을 수 있습니다. ordered 옵션이 false 인 경우 여러 오류가 발생했을 수 있습니다.

다음 작업은 test 데이터베이스의 users 컬렉션에 두 개의 문서를 삽입합니다.

<?php
$collection = (new MongoDB\Client)->test->users;
$insertManyResult = $collection->insertMany([
[
'username' => 'admin',
'email' => 'admin@example.com',
'name' => 'Admin User',
],
[
'username' => 'test',
'email' => 'test@example.com',
'name' => 'Test User',
],
]);
printf("Inserted %d document(s)\n", $insertManyResult->getInsertedCount());
var_dump($insertManyResult->getInsertedIds());

이 경우 출력은 다음과 유사합니다:

Inserted 2 document(s)
array(2) {
[0]=>
object(MongoDB\BSON\ObjectId)#11 (1) {
["oid"]=>
string(24) "579a25921f417dd1e5518141"
}
[1]=>
object(MongoDB\BSON\ObjectId)#12 (1) {
["oid"]=>
string(24) "579a25921f417dd1e5518142"
}
}

돌아가기

getWriteConcern()