2011-03-28 252 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();