在c#mongodb驱动程序(版本2.3)中,modify现有的bson文档非常容易。但是,c ++驱动程序(版本v3)似乎只提供现有文档的只读视图或新文档的构建器。我是否忽略了c ++驱动程序的某些功能,或者c ++驱动程序是否真的错过了修改功能,或者c#驱动程序是否通过内部复制原始文档并将修改添加到新文档中来模拟修改?
答案 0 :(得分:0)
C ++驱动程序在内部将BSON文档建模为字节数组以提高效率,而不是作为映射或其他读/写数据结构。 C#RawBsonDocument类是最接近的等价物。
如果您需要在C ++中进行膨胀,修改和缩减,则必须由用户完成。例如,定义表示文档的类/结构,以及采用bsoncxx::document::view
并迭代它以填充感兴趣的结构域的构造函数。然后创建一个方法来遍历类/结构的成员,通过其中一个构建器类将它们附加到新文档,然后返回它。