使用C++从MongoDb中检索binData记录
retrieve a binData record from MongoDb using C++
有人能告诉我一个如何使用C++从MongoDb中检索binData记录的例子吗
我尝试了这个代码,但返回垃圾:
char* arrS;
while (dbResult->more())
{
record = dbResult->next();
strcpy(arrS, record.getField("s").binData(iLen));
}
"s"是我的binData字段。提前感谢您,如有任何建议,我们将不胜感激。
参数iLen
实际上是binData
的(第二个)返回值。你可以像这样提取二进制内容:
int iLen;
const char* p = record["s"].binData(len);
std::string content(p, iLen);
.binData()返回一个const char*,因此它应该返回一个指向二进制数据的指针。您只需要将其复制到一个缓冲区中,可以是显式分配的,也可以是一个动态缓冲区(如字符串)。
例如。
std::string arrS;
int iLen = 0;
arrS = record.getField("s").binData(iLen);
我不确定iLen参数——通常这个模式用于传递缓冲区长度的值,并返回复制的字节数,但文档没有提及。
如果是这样,您需要分配一个缓冲区:
char arrS[1000];
int iLen = sizeof(arrS);
memcpy(arrS, record.getField("s").binData(iLen));
相关文章:
- 使用VerQueryValue检索应用程序的文件描述
- 是否可以从格式字符串中检索"width"
- 使用 pqxx 将 std::vector 存储在 postgresql 中,并从数据库中检索它
- 如何在QByteArray中放置和检索位字段而不会感到痛苦?
- 如何在Qt中从数据库中检索二进制数据?
- 如何从C++代码中检索 QML 的文本字段中的文本?
- 从 opencv c++ 中的矢量中检索固定的帧数
- 如何在不等待检索的情况下获取C++中的内存位置?
- 如何在 QTreeWidget 中检索特定项目的 mimeData?
- C++从字符串中检索几行
- 在数据库中插入和检索矩阵
- 两个垫子的 OpenCV 数据是相同的,但使用 Mat::at 检索时的值已损坏
- 使用 const char* 键映射 C++ 检索空值
- 打印从SQLite3数据库检索的数据C++与命令行中相同的方式
- 如何检索指向在单独线程上运行的函数的移动指针?
- 如何检索 Steamwork SDK 的当前版本
- 通过 host() 从 af::array 检索数据会导致错误的数据
- 无法从类中检索值
- 初始化类中的指针数组,并在另一个类中检索它
- 使用C++从MongoDb中检索binData记录