首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用C++从MongoDb检索binData记录

使用C++从MongoDb检索binData记录
EN

Stack Overflow用户
提问于 2012-07-31 01:23:52
回答 2查看 740关注 0票数 2

谁能给我一个例子,告诉我如何使用C++从MongoDb中检索binData记录?

我尝试了以下代码,但返回了垃圾信息:

代码语言:javascript
复制
char* arrS;

while (dbResult->more())
{
    record = dbResult->next();
    strcpy(arrS, record.getField("s").binData(iLen));
}

"s“是我的binData字段。提前感谢你,任何建议都是非常感谢的。

EN

回答 2

Stack Overflow用户

发布于 2012-08-31 06:51:24

参数iLen实际上是binData的(第二个)返回值。您可以像这样提取二进制内容:

代码语言:javascript
复制
int iLen;
const char* p = record["s"].binData(len);
std::string content(p, iLen);
票数 0
EN

Stack Overflow用户

发布于 2012-07-31 01:59:25

.binData()返回一个const char*,所以它应该返回一个指向二进制数据的指针。您只需将其复制到一个缓冲区中,无论是显式分配的缓冲区还是字符串之类的动态缓冲区。

例如:

代码语言:javascript
复制
std::string arrS;
int iLen = 0;
arrS = record.getField("s").binData(iLen);

我不确定iLen参数-此模式通常用于传入缓冲区长度的值,并返回复制的字节数,但返回的是docs don't mention it

如果是这样,您需要分配一个缓冲区:

代码语言:javascript
复制
char arrS[1000];
int iLen = sizeof(arrS);
memcpy(arrS, record.getField("s").binData(iLen));
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11726436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档