MongoDB\Driver\BulkWrite::update

(mongodb >=1.0.0)

MongoDB \ Driver \ Bulkwrite :: update - 대량에 업데이트 작업 추가


설명

public MongoDB\Driver\BulkWrite::update(array|object $filter, array|object $newObj, array $updateOptions = ?): void

MongoDB\Driver\BulkWrite에 업데이트 작업을 추가합니다.


매개변수

filter (array|object)
» query predicate. 빈 술어는 컬렉션의 모든 문서와 일치합니다.

참고: 쿼리 기준을 평가할 때 MongoDB는 PHP의 비교 및 ​​유형 저글링 규칙과 다른 » BSON 유형에 대한 자체 비교 규칙에 따라 유형과 값을 비교합니다. 특수 BSON 유형을 일치시킬 때 쿼리 기준은 해당 BSON 클래스를 사용해야 합니다(예: » ObjectId와 일치시키기 위해 MongoDB\BSON\ObjectId 사용).

newObj (array|object)
업데이트 연산자(예: $set), 대체 문서(예: field:value 표현식만) 또는 » 집계 파이프라인을 포함하는 문서.
updateOptions

updateOptions

Option Type 설명 Default
arrayFilters array 배열 필드에 대한 업데이트 작업을 위해 수정할 배열 요소를 결정하는 필터 문서의 배열입니다. 자세한 내용은 MongoDB 설명서에서 » 배열 업데이트 작업을 위한 arrayFilters 지정을 참조하세요.

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

collation array|object » 데이터 정렬을 통해 사용자는 문자 대소문자 및 악센트 표시 규칙과 같은 문자열 비교를 위한 언어별 규칙을 지정할 수 있습니다. 데이터 정렬을 지정할 때 "로케일" 필드는 필수입니다. 다른 모든 데이터 정렬 필드는 선택 사항입니다. 필드에 대한 설명은 » 데이터 정렬 문서를 참조하세요.

데이터 정렬이 지정되지 않았지만 컬렉션에 기본 데이터 정렬이 있는 경우 작업은 컬렉션에 대해 지정된 데이터 정렬을 사용합니다. 컬렉션 또는 작업에 대해 데이터 정렬이 지정되지 않은 경우 MongoDB는 문자열 비교를 위해 이전 버전에서 사용된 단순 이진 비교를 사용합니다.

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

hint string|array|object 인덱스 사양. 인덱스 이름을 문자열 또는 인덱스 키 패턴으로 지정하십시오. 지정된 경우 쿼리 시스템은 힌트 인덱스를 사용하는 계획만 고려합니다.

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

multi bool false인 경우 첫 번째 일치 문서만 업데이트하거나 모든 일치 문서가 true인 경우 업데이트합니다. newObj가 대체 문서인 경우 이 옵션은 true일 수 없습니다. false
upsert bool filter가 기존 문서와 일치하지 않으면 단일 문서를 삽입하십시오. 문서가 대체 문서인 경우(즉, 업데이트 연산자가 없는 경우) newObj에서 문서가 생성됩니다. 그렇지 않으면 newObj의 연산자가 filter에 적용되어 새 문서를 만듭니다. false

반환 값

값이 반환되지 않습니다.


오류/예외


변경 로그

버전 설명
PECL mongodb 1.7.0 "hint" 옵션을 추가했습니다.
PECL mongodb 1.6.0 newObj 매개변수는 이제 집계 파이프라인을 허용합니다. 이 기능을 사용하려면 MongoDB 4.2 이상이 필요하며 이전 서버 버전에 대해 지정된 경우 실행 시 예외가 발생합니다.
PECL mongodb 1.5.0 "arrayFilters" 옵션을 사용하면 서버에서 지원하지 않는 경우 실행 시 예외가 발생합니다. 이전에는 예외가 발생하지 않았고 옵션이 무시되었을 수 있습니다.
PECL mongodb 1.4.0 "arrayFilters" 옵션을 추가했습니다.
PECL mongodb 1.2.0 "collation" 옵션을 추가했습니다.

Examples

예제 #1 MongoDB\Driver\BulkWrite::update() 예제

                  
<?php

$bulk = new MongoDB\Driver\BulkWrite;
$bulk->update(
    ['x' => 2],
    ['$set' => ['y' => 3]],
    ['multi' => false, 'upsert' => false]
);

$manager = new MongoDB\Driver\Manager('mongodb://localhost:27017');
$result = $manager->executeBulkWrite('db.collection', $bulk);

?>
                  
                

기타