C++ MongoDB/C++;-将字符串转换为BsonElement

C++ MongoDB/C++;-将字符串转换为BsonElement,c++,mongodb,C++,Mongodb,我有一个MongoDb数据库。流程正在向集合中写入以下内容: { "_id" : ObjectId("4d773fdbe916004e36de5c55"), "worker" : [ "172.27.93.231", "172.27.93.232" ], "lock" : [ "172.27.93.230", "172.27.93.232"

我有一个MongoDb数据库。流程正在向集合中写入以下内容:

{ "_id" : ObjectId("4d773fdbe916004e36de5c55"), "worker" : [ "172.27.93.231", "172.27.93.232" ], "lock" : [ "172.27.93.230", "172.27.93.232" ] }
mongo::BSONElement helping = task.getField("lock");
vector<mongo::BSONElement> vectorhelp  = helping.Array();

我的C++进程得到这个文档。< /P>

现在我希望C++进程将IP地址添加到锁字段。另一个地址也应该留在那里。我必须得到这个字段中的IP地址。所以我创建了一个向量,用它们填充。看起来像这样:

{ "_id" : ObjectId("4d773fdbe916004e36de5c55"), "worker" : [ "172.27.93.231", "172.27.93.232" ], "lock" : [ "172.27.93.230", "172.27.93.232" ] }
mongo::BSONElement helping = task.getField("lock");
vector<mongo::BSONElement> vectorhelp  = helping.Array();
mongo::bsonement help=task.getField(“锁”);
vector vectorhelp=help.Array();

但是如何将向量和新的IP地址写回锁定字段。

似乎是一个很好的开始。如果您查看BSONObjBuilder API文档,就会发现一个append方法将向量作为参数。

您可以使用BSONObjBuilder从字符串构造BSonObj

BSONObjBuilder b;
b.append("name", "Joe");
b.append("age", 33);
BSONObj p = b.obj();
要将数组转换为BsonObj,请使用vals()函数:

bo x;
vector<string> strs;
x.vals(strs);
box;
向量strs;
x、 vals(strs);
请在此处阅读更多信息: