
MongoDBDriverBulkWrite::__construct() 함수는 bulk write를 수행하기 위한 객체를 생성합니다. 이 함수의 파라미터로 전달할 수 있는 옵션은 없습니다. 그러나 bulk write를 수행할 때, 고유키를 자동으로 생성하거나, 문서를 업데이트할 때, 기존 문서의 필드를 유지하도록 설정하는 방법은 다음과 같습니다.
- 고유키를 자동으로 생성하기 위해서는, insertOne() 메서드의 파라미터로 $autoIndexId = true 옵션을 전달하면 됩니다.
#hostingforum.kr
php
$bulkWrite->insertOne($document1, ['ordered' => false, 'autoIndexId' => true]);
- 문서를 업데이트할 때, 기존 문서의 필드를 유지하도록 설정하기 위해서는, updateOne() 메서드의 파라미터로 $setOnInsert 옵션을 전달하면 됩니다.
#hostingforum.kr
php
$bulkWrite->updateOne($filter1, ['$set' => $update1, '$setOnInsert' => $setOnInsert]);
bulk write를 수행한 후, 에러가 발생하는 경우, 에러 메시지를 확인하는 방법은 다음과 같습니다.
- 에러 메시지를 확인하기 위해서는, try-catch 블록을 사용하여 BulkWriteException 예외를 캐치하면 됩니다.
#hostingforum.kr
php
try {
$manager->executeBulkWrite($collectionName, $bulkWrite);
} catch (MongoDBDriverExceptionBulkWriteException $e) {
echo $e->getMessage();
}
- 에러 메시지를 확인하기 위해서는, $e->getInfo() 메서드를 사용하여 에러 정보를 가져올 수 있습니다.
#hostingforum.kr
php
try {
$manager->executeBulkWrite($collectionName, $bulkWrite);
} catch (MongoDBDriverExceptionBulkWriteException $e) {
echo $e->getInfo()['errmsg'];
}
- 에러 메시지를 확인하기 위해서는, $e->getInfo() 메서드를 사용하여 에러 정보를 가져올 수 있습니다. 이 메서드는 에러 메시지를 포함하는 배열을 반환합니다.
#hostingforum.kr
php
try {
$manager->executeBulkWrite($collectionName, $bulkWrite);
} catch (MongoDBDriverExceptionBulkWriteException $e) {
echo $e->getInfo()['errmsg'];
}
2025-06-10 18:18