使用 mongodb c# 和 c++ 驱动程序修改 bson 文档

Modifying bson documents with mongodb c# and c++ drivers

在c#mongodb驱动程序(2.3版)中很容易modify一个已有的bson文件。但是,c++ 驱动程序(版本 v3)似乎只提供现有文档的只读视图或新文档的构建器。我是否忽略了 c++ 驱动程序的某些功能,或者 c++ 驱动程序是否真的缺少修改功能,或者 c# 驱动程序是否只是通过内部复制原始文档并将修改添加到新文档来模拟修改?

为了提高效率,C++ 驱动程序在内部将 BSON 文档建模为字节数组,而不是映射或其他 read/write 数据结构。 C# RawBsonDocument class 是最接近的等价物。

如果您需要在 C++ 中扩充、修改和缩小,则必须由用户完成。例如,定义一个表示文档的 class/struct,以及一个采用 bsoncxx::document::view 并对其进行迭代以填充感兴趣的结构字段的构造函数。然后创建一个遍历 class/struct 成员的方法,通过其中一个构建器 class 将它们附加到新文档,然后 returns 那。