如何将bsoncxx :: builder :: basic :: document复制到另一个?

时间:2017-08-01 09:28:34

标签: mongodb c++11 bson mongo-cxx-driver

有没有办法安全地将bsoncxx文件复制到另一个文件。 在下面的代码中,我无法做到这一点

class DocClass
{
private:
    bsoncxx::builder::basic::document m_doc;
public:
    bsoncxx::builder::basic::document& copy(bsoncxx::builder::basic::document& obj)
    {
        obj = m_doc; //Not allowed
        //Error C2280   attempting to reference a deleted function
    }
};

即使复制后也不应对对象造成任何伤害。 请帮忙。

谢谢, 世斌

1 个答案:

答案 0 :(得分:2)

如果要复制bsoncxx :: document :: value,可以从视图中构造一个新的:

bsoncxx::document::value foo = ...;
bsoncxx::document::value bar{foo.view()};

bsoncxx :: builder :: basic :: document只能移动,不能复制。但是,您可以使用view()方法从构建器查看基础文档,这可能会根据您的用例帮助您。尽管如此,您仍然只能从构建器中extract,因此如果您需要多个document::value,则必须依赖构建第二个tranwrd