如何使用 mongo C++ API 创建 mongo::BSONObjBuilder 的映射

How can I create a map of mongo::BSONObjBuilder using mongo C++ API?

本文关键字:mongo BSONObjBuilder 映射 API 何使用 C++ 创建      更新时间:2023-10-16

我想做这样的事情

std::map<int, mongo::BSONObjBuilder> items;
for (i = 0; i <= 10; i++) {
  items[i].append("description", "Car")
          .append("type", "vehicle")
          .append("color", "green");
}

我试过这个,但它会产生编译时错误。这可能吗?如果不是,实现这样的事情的最佳方法是什么?

问题是 std::map 要求值是可复制的,但 BSONObjBuilder 被明确定义为不可复制的: https://github.com/mongodb/mongo/blob/r2.0.4/bson/bsonobjbuilder.h#L86。

(请注意,这也被发布到我们的邮件列表中 https://groups.google.com/forum/?fromgroups#!topic/mongodb-user/ZVdJG64Uqic.那里可能会有后续讨论。