栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

MongoDB在C++中的应用

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

MongoDB在C++中的应用

安装

参考链接: http://mongocxx.org/mongocxx-v3/installation/linux/

外部工具
$ sudo apt-get install libmongoc-1.0-0
$ sudo apt-get install libbson-1.0
$ sudo apt-get install cmake libssl-dev libsasl2-dev
安装mongo-c-driver
$ git clone -v https://github.com.cnpmjs.org/mongodb/mongo-c-driver.git
$ mkdir cmake-build
$ cd cmake-build
$ cmake -DENABLE_AUTOMATIC_INIT_AND_CLEANUP=OFF ..
$ sudo make install
安装mongo-cxx-driver
$ git clone -v https://github.com.cnpmjs.org/mongodb/mongo-cxx-driver.git
$ mkdir cmake-build
$ cd cmake-build
$ sudo cmake ..                                
    -DCMAKE_BUILD_TYPE=Release          
    -DBSONCXX_POLY_USE_MNMLSTC=1                      
    -DCMAKE_INSTALL_PREFIX=/usr/local
$ sudo make EP_mnmlstc_core
$ sudo make
$ sudo make install
代码 CMake工程配置文件
cmake_minimum_required(VERSION 2.8)

set(APPNAME demo)
project(${APPNAME})

set(ENV{PKG_CONFIG_PATH} /usr/lib/pkgconfig)
find_package(PkgConfig)
pkg_search_module(BSON REQUIRED libbsoncxx)
pkg_search_module(MonGO REQUIRED libmongocxx)

SET(CMAKE_BUILD_TYPE "Debug")
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++17 -pthread -g -Wl,-rpath=./lib")

include_directories(app
    ${BSON_INCLUDE_DIRS}
    ${MONGO_INCLUDE_DIRS})

aux_source_directory(. DIRSRCS)
add_executable(${APPNAME}
    ${DIRSRCS}
    )

# link library to application
target_link_libraries(${APPNAME}
    ${BSON_LIBRARIES}
    ${MONGO_LIBRARIES}
    )
使用案例
#include "Mongo.h"

#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

namespace mongo
{
    bool Mongo::Init()
    {
        LOG(INFO) << "mongo init...";

        try
        {
            mongocxx::instance instance{}; // This should be done only once.
            mongocxx::uri uri("mongodb://admin:123456@192.168.2.100:27017");

            mongocxx::pool pool{uri};
            auto client = pool.acquire();
            //列出数据库名称
            for(auto iter : client->list_database_names())
            {
                LOG(INFO)<<"database: "< find_result = collection.find_one(find_doc);
            if(find_result) 
            {
                LOG(INFO)<<"find data: "<
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/588213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号