MongoDB / C ++ - конвертировать строку в BsonElement - PullRequest
0 голосов
/ 09 марта 2011

Я думаю, что должен дать вам больше деталей, чтобы показать вам мою проблему. У меня есть база данных MongoDb. Процесс записывает в коллекцию что-то вроде этого:

{ "_id" : ObjectId("4d773fdbe916004e36de5c55"), "worker" : [ "172.27.93.231", "172.27.93.232" ], "lock" : [ "172.27.93.230", "172.27.93.232" ] }

После этого мой процесс на С ++ получил этот документ. Теперь я хочу, чтобы процесс c ++ добавил свой IP-адрес в поле блокировки. Другой адрес должен остаться там тоже. Я должен получить IP-адреса, которые находятся в этой области. Поэтому я создал вектор, который будет заполнен ими. Выглядит так:

mongo::BSONElement helping = task.getField("lock");
vector<mongo::BSONElement> vectorhelp  = helping.Array();

Но как можно записать вектор и новый IP-адрес обратно в поле блокировки.

Ответы [ 2 ]

0 голосов
/ 09 марта 2011

Вы можете использовать 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

0 голосов
/ 09 марта 2011

http://www.mongodb.org/pages/viewpage.action?pageId=16646453 - хорошее место для начала.Если вы посмотрите на документацию API BSONObjBuilder, есть метод добавления, который принимает вектор в качестве аргумента.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...