我想我必须给你更多细节来证明我的问题。 我有一个MongoDb数据库。一个过程正在写入这样的集合:
{ "_id" : ObjectId("4d773fdbe916004e36de5c55"), "worker" : [ "172.27.93.231", "172.27.93.232" ], "lock" : [ "172.27.93.230", "172.27.93.232" ] }
之后我的c ++进程获取此文档。 现在我希望c ++进程将他的ip-adress添加到锁定字段。另一个地方也应该留在那里。我必须得到这个领域的IP地址。所以我创建了一个充满它们的向量。看起来像这样:
mongo::BSONElement helping = task.getField("lock");
vector<mongo::BSONElement> vectorhelp = helping.Array();
但是如何将矢量和新的Ip地址写回锁定字段。
答案 0 :(得分:0)
http://www.mongodb.org/pages/viewpage.action?pageId=16646453似乎是个好地方。如果你看一下BSONObjBuilder API文档,就会有一个append方法,它将vector作为参数。
答案 1 :(得分:0)
您可以使用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);
在此处阅读更多内容:http://api.mongodb.org/cplusplus/current/classmongo_1_1_b_s_o_n_obj.html