
MongoDBDriverServerApi::bsonSerialize에서 발생하는 int 타입의 데이터를 serialize 할 때, BSON_TYPE_INT32 타입이 아닌 BSON_TYPE_INT64 타입으로 변환되는 오류는 MongoDB의 BSON 타입 시스템에 의해 발생합니다.
MongoDB의 BSON 타입 시스템은 32비트 정수(int32)와 64비트 정수(int64) 두 가지 타입을 제공합니다.
int32 타입의 데이터는 BSON_TYPE_INT32 타입으로 serialize 되고, int64 타입의 데이터는 BSON_TYPE_INT64 타입으로 serialize 됩니다.
만약 int 타입의 데이터를 serialize 할 때 BSON_TYPE_INT64 타입으로 변환되는 오류가 발생하는 경우, 이는 MongoDB가 int 타입을 int64 타입으로 변환하기 때문입니다.
다음은 예제를 포함한 해결 방법을 설명합니다.
#hostingforum.kr
cpp
#include
int main() {
mongoc_init(NULL);
int data = 123;
BSONObjBuilder builder;
BSONObj obj = builder.append("data", data).objend();
// int 타입의 데이터를 int32 타입으로 serialize
BSONObjBuilder builder2;
BSONObj obj2 = builder2.append("data", static_cast(data)).objend();
mongoc_cleanup();
return 0;
}
위 예제에서, int 타입의 데이터를 serialize 할 때 static_cast를 사용하여 int32 타입으로 변환합니다.
이러한 방법으로 int 타입의 데이터를 serialize 할 때 BSON_TYPE_INT32 타입으로 변환할 수 있습니다.
2025-04-07 10:38