
MongoDBDriverWriteResult::getWriteErrors는 MongoDB에서 발생한 쓰기 오류를 가져올 때, 오류가 모두 포함되지 않는 경우가 있습니다.
이유는 MongoDB의 쓰기 연산이 여러 개의 문서에 대해 수행될 때, 일부 문서에 오류가 발생할 수 있습니다. 이 경우, getWriteErrors는 오류가 발생한 문서만 포함합니다.
예를 들어, 다음과 같은 쓰기 연산이 수행될 때:
#hostingforum.kr
php
$collection->insertMany([
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25],
['name' => 'Bob', 'age' => 40]
]);
만약 'Bob' 문서에 오류가 발생한다면, getWriteErrors는 오류가 발생한 'Bob' 문서만 포함합니다.
따라서, 모든 쓰기 오류를 가져올 때는 getWriteErrors를 사용하는 대신, getInsertedIds와 getModifiedIds를 사용하여 오류가 발생한 문서를 식별하고, getLastError를 사용하여 오류를 가져올 수 있습니다.
예를 들어:
#hostingforum.kr
php
$result = $collection->insertMany([
['name' => 'John', 'age' => 30],
['name' => 'Jane', 'age' => 25],
['name' => 'Bob', 'age' => 40]
]);
if ($result->getLastError()) {
// 오류가 발생한 문서를 식별하고, 오류를 가져옵니다.
$insertedIds = $result->getInsertedIds();
$modifiedIds = $result->getModifiedIds();
$error = $result->getLastError();
// 오류를 처리합니다.
}
이러한 방법으로, 모든 쓰기 오류를 가져올 수 있습니다.
2025-03-26 03:49