라이브러리

[PHP] MongoDBDriverBulkWrite::insert - 대량 삽입 작업 추가




MongoDBDriverBulkWrite::insert

MongoDBDriverBulkWrite::insert는 MongoDB의 bulk write 연산을 수행하는 메서드입니다. bulk write 연산은 여러 개의 문서를 한번에 삽입, 업데이트, 삭제할 수 있는 기능입니다.

사용법


MongoDBDriverBulkWrite::insert 메서드는 다음과 같이 사용할 수 있습니다.

#hostingforum.kr
php

use MongoDBDriverBulkWrite;

use MongoDBDriverBulkWriteException;

use MongoDBDriverWriteConcern;



$bulk = new BulkWrite();

$bulk->insert($document);

$bulk->update($filter, $update);

$bulk->delete($filter);

$bulk->replaceOne($filter, $document);



$result = $manager->executeBulkWrite($collectionName, $bulk);



예제


다음 예제에서는 MongoDB의 bulk write 연산을 사용하여 여러 개의 문서를 삽입합니다.

#hostingforum.kr
php

use MongoDBDriverBulkWrite;

use MongoDBDriverBulkWriteException;

use MongoDBDriverWriteConcern;

use MongoDBDriverManager;



// MongoDB 연결 매니저 생성

$manager = new Manager("mongodb://localhost:27017");



// 데이터베이스와 컬렉션 이름

$dbName = "example";

$collectionName = "users";



// bulk write 연산을 위한 BulkWrite 객체 생성

$bulk = new BulkWrite();



// 여러 개의 문서를 삽입

$documents = [

    ["name" => "John Doe", "age" => 30],

    ["name" => "Jane Doe", "age" => 25],

    ["name" => "Bob Smith", "age" => 40]

];



foreach ($documents as $document) {

    $bulk->insert($document);

}



// bulk write 연산 수행

try {

    $result = $manager->executeBulkWrite($collectionName, $bulk);

    echo "Bulk write 연산이 성공적으로 수행되었습니다.
";

} catch (BulkWriteException $e) {

    echo "Bulk write 연산이 실패했습니다.
";

    print_r($e->getWriteResult());

}



WriteConcern


WriteConcern는 MongoDB의 bulk write 연산의 성공 여부를 결정하는 옵션입니다. WriteConcern는 다음과 같은 옵션을 제공합니다.

* `w` : 기본 옵션으로, write 연산이 성공적으로 수행되었는지 확인합니다.
* `wtimeout` : write 연산이 성공적으로 수행되기까지의 시간 제한을 설정합니다.
* `fsync` : write 연산이 성공적으로 수행되었는지 확인하고, 데이터를 디스크에 동기화합니다.
* `journal` : write 연산이 성공적으로 수행되었는지 확인하고, 데이터를 디스크에 동기화합니다.

다음 예제에서는 WriteConcern를 사용하여 bulk write 연산을 수행합니다.

#hostingforum.kr
php

use MongoDBDriverBulkWrite;

use MongoDBDriverBulkWriteException;

use MongoDBDriverWriteConcern;

use MongoDBDriverManager;



// MongoDB 연결 매니저 생성

$manager = new Manager("mongodb://localhost:27017");



// 데이터베이스와 컬렉션 이름

$dbName = "example";

$collectionName = "users";



// bulk write 연산을 위한 BulkWrite 객체 생성

$bulk = new BulkWrite();



// 여러 개의 문서를 삽입

$documents = [

    ["name" => "John Doe", "age" => 30],

    ["name" => "Jane Doe", "age" => 25],

    ["name" => "Bob Smith", "age" => 40]

];



foreach ($documents as $document) {

    $bulk->insert($document);

}



// WriteConcern 설정

$writeConcern = new WriteConcern(WriteConcern::MAJORITY, 1000);



// bulk write 연산 수행

try {

    $result = $manager->executeBulkWrite($collectionName, $bulk, $writeConcern);

    echo "Bulk write 연산이 성공적으로 수행되었습니다.
";

} catch (BulkWriteException $e) {

    echo "Bulk write 연산이 실패했습니다.
";

    print_r($e->getWriteResult());

}



참고


* MongoDB Driver for PHP:
* MongoDB Bulk Write:
  • profile_image
    나우호스팅 @pcs8404 

    호스팅포럼 화이팅!

    댓글목록

    등록된 댓글이 없습니다.

  • 전체 10,077건 / 400 페이지

검색

게시물 검색