2011-03-28 146 views
4

我正在测试BSON作为有线协议,并且我需要能够更改已创建的BSONObj上的某些值......问题是我找不到方法来执行这不是从头开始重新创建BSONObj!更改BSON字段值(C++)

任何提示?

回答

2

我收到了德怀特·梅里曼,回复来自10gen公司:

generaly他们是不可改变的 - 在 常见的用法是 序列化/反序列化从您选择的CPP 对象。另请参阅$ set 和$ inc,但这些是服务器端。

所以......我们有它:)

1

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

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