Изменить значение поля BSON (C ++) - PullRequest
4 голосов
/ 28 марта 2011

Я тестирую BSON как проводной протокол, и мне нужно иметь возможность изменять некоторые значения на уже созданном BSONObj ... проблема в том, что я не могу найти способ сделать это, кроме как воссоздать BSONObj изцарапина!

Любые советы?

Ответы [ 2 ]

2 голосов
/ 28 марта 2011

Я получил ответ от Дуайта Мерримана, от 10gen:

как правило, они неизменны - общее использование заключается в сериализация / десериализация из cpp объект на ваш выбор. Смотрите также $ set и $ inc, но это на стороне сервера.

Итак ... вот оно:)

1 голос
/ 04 мая 2017

Как уже было сказано, нет способа изменить существующий BSONObj. Но есть обходной путь, чтобы сделать это без воссоздания "с нуля". Предположим, у вас есть BSONObj Mybson. И вы хотите изменить поле "somefield".

mybson = mybson.removeField("somefield");
mybson = BSONObjBuilder().appendElements(mybson).append("somefield", newvalue).obj();
...