gpt4 book ai didi

c++ - bsoncxx - 有没有办法遍历 .bson 转储文件中的文档?

转载 作者:行者123 更新时间:2023-11-30 03:16:41 25 4
gpt4 key购买 nike

类似于我们如何使用单个二进制文档从缓冲区构造 bsoncxx::document::view 对象,是否有一种方法可以从该框架中的 .bson 转储中的集合中提取单个文档,而无需将它们加载到数据库?

即什么适用于单个文档对象

uint8 *buffer; // single bson document
size_t length; // size of buffer
bsoncxx::document::view view(buffer, length);

for (auto elem : view) {
doSomethingWithElem()
}

我希望能够为整个转储构建游标,但不将其加载到集合中。这样的事情可能吗?

最佳答案

找到了解决方案,最终非常简单 - 我使用了 libbson 库。我在下面使用的示例:

#include <bson.h>
// and other includes

void read_bson() {

bson_reader_t *reader;
const bson_t *doc;
bson_error_t error;
bool eof;
char *path;

reader = bson_reader_new_from_file(path, &error);

if (reader)
{
while ((doc = bson_reader_read(reader, &eof)))
{
const uint8_t *buffer = bson_get_data(doc);
auto view = bsoncxx::document::view(buffer, doc->len);
}
}
}

关于c++ - bsoncxx - 有没有办法遍历 .bson 转储文件中的文档?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56117984/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com