【发布时间】:2016-11-12 02:52:09
【问题描述】:
在 c# mongodb 驱动程序(2.3 版)中,modify 现有的 bson 文档非常容易。但是,c++ 驱动程序(版本 v3)似乎只提供现有文档的只读视图或新文档的构建器。是我忽略了 c++ 驱动的一些特性还是 c++ 驱动真的错过了修改功能,还是 c# 驱动只是通过内部复制原始文档并将修改添加到新文档中来模拟修改?
【问题讨论】:
在 c# mongodb 驱动程序(2.3 版)中,modify 现有的 bson 文档非常容易。但是,c++ 驱动程序(版本 v3)似乎只提供现有文档的只读视图或新文档的构建器。是我忽略了 c++ 驱动的一些特性还是 c++ 驱动真的错过了修改功能,还是 c# 驱动只是通过内部复制原始文档并将修改添加到新文档中来模拟修改?
【问题讨论】:
为了提高效率,C++ 驱动程序在内部将 BSON 文档建模为字节数组,而不是映射或其他读/写数据结构。 C# RawBsonDocument 类是最接近的等价物。
如果您需要在 C++ 中进行充气、修改和放气,则必须由用户完成。例如,定义一个表示文档的类/结构,以及一个接受bsoncxx::document::view 并对其进行迭代以填充感兴趣的结构字段的构造函数。然后创建一个遍历类/结构成员的方法,通过其中一个构建器类将它们附加到新文档,然后返回。
【讨论】: