라이브러리
[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:
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.