更改BSON字段值(C ++)

时间:2011-03-28 00:51:49

标签: c++ bson

我正在测试BSON作为有线协议,我需要能够在已经创建的BSONObj上更改一些值...问题是除了从中重新创建BSONObj之外我找不到这样做的方法刮!

任何提示?

2 个答案:

答案 0 :(得分:2)

我收到了来自10gen的Dwight Merriman的回复:

  一般来说,它们是不变的 -   常见的用法是   从cpp序列化/反序列化   你选择的对象。另见$ set   和$ inc但这些都是服务器端。

所以...我们有它:)

答案 1 :(得分:1)

据说没有办法改变现有的BSONObj。但是有一种解决方法可以“从头开始”重新创建它。假设你有一个BSONObj mybson。你想改变“somefield”字段。

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