哪个 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 之上构建您自己的对象文档映射。
我最近开始使用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 之上构建您自己的对象文档映射。