auto cursor = db["friend"].find({});
    for (auto &&docView : cursor) {

        bsoncxx::builder::basic::document document1;
        document1.append(docView); // This line will be an error
        document1.append(kvp("surl", "http://xxx"));
        document1.append(kvp("burl", "http://xxx"));

        arr.append(document1);
    }

我想创建一个新文档,包含查询结果,并在文档中添加一些新字段。但是以上代码无法运行。谁能告诉我该怎么办,谢谢!

查询结果docView像这样:
{
"name": "BeJson",
"headUrl": "http://www.bejson.com"
}

我想要这样构建document1:
{
"name": "BeJson",
"headUrl": "http://www.bejson.com",
"surl": "http://xxx",
"burl": "http://xxx"
}

最佳答案

我认为,如果我理解您的问题,则应使用builder::concatenate:

auto cursor = db["friend"].find({});
for (auto &&docView : cursor) {
    bsoncxx::builder::basic::document document1;
    document1.append(bsoncxx::builder::concatenate(docView));
    document1.append(kvp("surl", "http://xxx"));
    document1.append(kvp("burl", "http://xxx"));
}

关于c++ - mongocxx如何从 View 构建文档?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49062594/

10-10 17:53