c++ 读写mongodb

mongocxx::pool *pool_ = new mongocxx::pool(mongocxx::uri(mongodb://192.168.2.11:27017/?minPoolSize=3));

    try{
        std::vector<uchar> data_encode;
        cv::imencode(".jpg",data.snapshot,data_encode);
        bsoncxx::types::b_binary imgBinary;
        imgBinary.bytes = data_encode.data();
        imgBinary.size = data_encode.size();

        auto builder = bsoncxx::builder::stream::document{};
        builder << "_id" << data.id
                << "filed1" << data.cameraId
                << "filed2" << data.snapshotUrl
                << "bbox" << bsoncxx::builder::stream::open_array
                               << data.bbox.x << data.bbox.y << data.bbox.width << data.bbox.height << bsoncxx::builder::stream::close_array
                << "ts" << data.ts
                << "scene_id" << data.sceneId
                << "id_in_scene" << data.id_in_scene
                << "natural_person" << data.natural_person
                << "binary_img" << imgBinary;
        if(!data.feature.empty()){
            builder << "feature" << bsoncxx::builder::stream::open_array
                                   << [&](bsoncxx::builder::stream::array_context<> arr){
                                           for(auto &feature : data.feature){
                                                arr << feature;
                                            }
                                        } << bsoncxx::builder::stream::close_array
                    << "attribute" << bsoncxx::builder::stream::open_array
                                    << [&](bsoncxx::builder::stream::array_context<> arr){
                                          for(auto &attribute : data.attribute){
                                              arr << attribute;
                                           }
                                        } << bsoncxx::builder::stream::close_array
                    << "norm" << data.norm;
        }
        if(!data.bodyId.empty()){
            builder << "body_id" << data.bodyId;
        }
        bsoncxx::document::value doc_value = builder << bsoncxx::builder::stream::finalize;

        auto mongoClient = pool_->acquire();
        mongocxx::collection coll = (*mongoClient)[dbName_][collectionName_];
        mongocxx::stdx::optional<mongocxx::result::insert_one> result = coll.insert_one(doc_value.view());
    }catch(std::exception &e){
        MongoDaoLogger::instance().log("info", "snap face mongo dao insert2MongoDB: %s", std::string(e.what()));
    }

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值