我如何将c ++中的vector序列化为char,以便于使用mondodb作为后端

时间:2018-01-29 11:07:15

标签: c++ mongodb serialization

我有vector<matrix<float,o,1>> obj_id;

矩阵是:

class matrix : public matrix_exp<matrix<T,num_rows,num_cols, mem_manager,layout> > 

我想将每个项目写入mongodb。我无法找到转换的解决方案。

但我可以序列化每个项目来编写mongodb。但大多数序列化到文件的路径。

如何序列化为char或任何转换变量以将mongodb作为二进制插入?

最佳

1 个答案:

答案 0 :(得分:1)

免责声明:我已经有一段时间了,因为我一直在C ++领域工作,但是一个向量本质上是一个数组,您可以使用MongoDB站点上的BSON Document Builder示例来运行Cxx驱动程序在数组上构建文档:

https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/working-with-bson/

获得对向量的类似数组的访问:

if(obj_id.size()) {
    // create the pointer to the array
    double *myarray = &obj_id[0];

    // create a bson array builder and populate
    auto array_builder = bsoncxx::builder::basic::array{};

    for (const auto& element : elements) {
        array_builder.append(element);
    }

    // Add the array_builder result into a document
    // and save into the database
    ...
}

同样,我的C ++有点生疏,我对MongoDB Cxx驱动程序的体验更加有限,但我希望你有足够的指针/开始继续你的工作。