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

时间:2011-03-09 13:34:58

标签: c++ mongodb

我想我必须给你更多细节来证明我的问题。 我有一个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地址写回锁定字段。

2 个答案:

答案 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