私は従来のドライバでいくつかの作業をしましたが、今は新しいものにアップグレードしています。しかし、私は問題を抱えています。 基本的なドキュメントにGUIDを追加しようとしていますが、新しいドライバでは12バイト長のバイナリデータしか使用できません。 レガシードライバでは、16バイトのデータを受け取り、GUIDは16バイトに変換されました。 GUIDを長さ12のバイト配列に変換できますか?mongocxxドライバを使用して文書にbsoncxx :: types :: b_oidとしてGUIDを追加する方法は?
typedef struct _GUID {
unsigned long Data1;
unsigned short Data2;
unsigned short Data3;
unsigned char Data4[ 8 ];
} GUID;
GUIDを挿入コード:
void insert_guid(std::string name, const GUID& guid)
{
convertGUIDtoBinary(guid, binaryGuidData); //Can't convert to 12 byte. It will convert to 16 byte length
bsoncxx::types::b_oid oId;
oId.value = bsoncxx::oid(binaryGuidData, 12); //How to make it 12 byte length?
bsoncxx::builder::basic::document _builder;
_builder.append(kvp(name, oId));
}
してください、誰かが私を助けることができれば、おかげで..あなたは、16バイトのGUIDのためb_oid
を使用するので、使用することはできません
bArray.sub_type = bsoncxx :: binary_sub_type :: k_uuid_deprecated; 私の場合は動作します – snb