我正在测试BSON作为有线协议,我需要能够在已经创建的BSONObj上更改一些值...问题是除了从中重新创建BSONObj之外我找不到这样做的方法刮!
任何提示?
答案 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();