
MongoDBBSONDocument::has 메서드는 필드의 존재 여부를 확인할 때, 필드의 존재 여부를 확인하는 것이 아니라, 필드의 값이 null이 아닌지 확인합니다.
즉, 'age' 필드는 존재하지만 null로 초기화되어 있기 때문에 has 메서드는 true를 반환합니다.
만약 'age' 필드가 존재하지 않으면, has 메서드는 false를 반환합니다.
따라서, MongoDBBSONDocument::has 메서드는 필드의 존재 여부를 정확하게 확인하는 것이 아니라, 필드의 값이 null이 아닌지 확인하는 메서드입니다.
만약 필드의 존재 여부를 정확하게 확인하고 싶다면, isset 메서드를 사용하는 것이 좋습니다.
예를 들어, 다음과 같이 코드를 작성할 수 있습니다.
php
$bsonDocument = new MongoDB\BSON\Document([
'name' => 'John',
'age' => 30,
]);
if (isset($bsonDocument->name)) {
echo "name 필드가 존재합니다.";
} else {
echo "name 필드가 존재하지 않습니다.";
}
이 코드는 'age' 필드가 존재하지 않더라도 'age 필드가 존재하지 않습니다.'라는 메시지를 출력합니다.
2025-06-27 03:31