4

我正在将 BSON 测试为有线协议,并且我需要能够更改已经创建的 BSONObj 上的一些值......问题是除了从头开始重新创建 BSONObj 之外,我找不到其他方法!

有小费吗?

4

2 回答 2

2

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

一般来说,它们是不可变的——常见的用法是从您选择的 cpp 对象序列化/反序列化。另请参阅 $set 和 $inc 但它们是服务器端的。

因此,我们有它 :)

于 2011-03-28T09:18:58.267 回答
1

据说没有办法改变现有的 BSONObj。但是有一种解决方法可以做到这一点,而无需“从头开始”重新创建它。假设你有一个 BSONObj mybson。并且您想更改字段“somefield”。

mybson = mybson.removeField("somefield");
mybson = BSONObjBuilder().appendElements(mybson).append("somefield", newvalue).obj();
于 2017-05-04T01:23:59.100 回答