哪个 mongoDB C++ ODM?

Which mongoDB ODM for C++?

我最近开始使用C++11和MongoDb开发一个项目,虽然我已经成功地使用mongocxx驱动实现了逻辑,但是需要一些时间来对数据进行反序列化。

mongocxx::options::find opts;
opts.limit(15000);
mongocxx::cursor cursor = collection.find({},opts);

for(auto && doc : cursor) {
    bsoncxx::document::element name = doc["Name"];
    bsoncxx::document::element experience = doc["Experience"];
    bsoncxx::document::element jobTitle = experience["JobTitle"];
    bsoncxx::document::element keywords = experience["Keywords"];

    string name = name.get_utf8().value.to_string();
    string jobTitleStr = jobTitle.get_utf8().value.to_string();

    bsoncxx::array::view keyWordsarray{keywords.get_array()};

    set<string> keyWordsSet;
    for (bsoncxx::array::element msg : keyWordsarray) {
          keyWordsSet.insert(msg.get_utf8().value.to_string());
    }
}

以上操作对我来说需要1.5秒。我希望 C++ 中是否存在任何用于 mongoDb 的 ODM(如 Python 中的 mongoengine)来处理反序列化工作。

你应该看看红树林:https://github.com/mongodb-labs/mangrove

这是一个 mongodb-labs 项目,因此,不受官方支持,但它可能会向您展示如何在 mongocxx 之上构建您自己的对象文档映射。