MongoDB介绍、安装及mongocxx C++驱动程序的安装

来源:互联网 发布:eclipse python import 编辑:程序博客网 时间:2024/06/06 14:09

MongoDB介绍

MongoDB 是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。
MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。

特点:

  • 面向集合
  • 模式自由
  • 文件存储格式为BSON(一种JSON的扩展)
  • 支持动态查询
  • 支持完全索引

MongoDB百度百科
MongoDB菜鸟教程

centos7 下安装

tar -zxvf mongodb-linux-x86_64-rhel70-3.4.10.tgz -C /home/oracle/appmv mongodb-linux-x86_64-rhel70-3.4.10 mongodbcd mongodbmkdir dbmkdir logscd bin//增加配置文件vi mongodb.confdbpath=/home/oracle/app/mongodb/db/logpath=/home/oracle/app/mongodb/logs/mongodb.logport=27017fork=truenohttpinterface=true

mongodb启动

./mongodb/bin/mongod –config /home/oracle/app/mongodb/bin/mongodb.conf

./mongodb/bin/mongo

//设置mongod开机自启动
vi /etc/rc.d/rc.local
/home/oracle/app/mongodb/bin/mongod –config /home/oracle/app/mongodb/bin/mongodb.conf

C++驱动安装

准备工作

  • 任何标准的Unix平台,或Windows 7 SP1 +
  • 一个支持C ++ 11(gcc,clang或Visual Studio)的编译器
  • CMake 3.2或更高版本

第1步:安装最新版本的MongoDB C驱动程序

$ sudo yum install pkg-config openssl-devel cyrus-sasl-devel$ wget https://github.com/mongodb/mongo-c-driver/releases/download/1.8.1/mongo-c-driver-1.8.1.tar.gz$ tar xzf mongo-c-driver-1.8.1.tar.gz$ cd mongo-c-driver-1.8.1$ ./configure --disable-automatic-init-and-cleanup$ make$ sudo make install

第2步:选择一个C ++ 17 polyfill
安装mongocxx driver 需要有具有C++17特性的以下接口:

  • MNMLSTC/core(默认非windows系统使用):需安装git、cmake等等等。。。后通过第4步安装
  • Boost(默认windows系统使用,如果用msvc这是唯一选择)

步骤3:下载最新版本的mongocxx驱动程序。

curl -OL https://github.com/mongodb/mongo-cxx-driver/archive/r3.1.3.tar.gztar -xzf r3.1.3.tar.gzcd mongo-cxx-driver-r3.1.3/build

步骤4:配置驱动程序(这里的坑太多,依赖太多一个个装吧)

cd mongo-cxx-driver-r3.1.3/buildPKG_CONFIG_PATH=/usr/local/lib/pkgconfig cmake -DBSONCXX_POLY_USE_MNMLSTC=1 -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local ..

Checking for module ‘libbson-1.0>=1.5.0’
默认绑定安装的libbson版本低
需先安装新版本libbson-1.8.1

wget https://github.com/mongodb/libbson/releases/download/1.8.1/libbson-1.8.1.tar.gztar -zxvf libbson-1.8.1.tar.gzcd libbson-1.8.1/./configuremakesudo make install

autoconf与automake的安装(也许不要)

wget http://mirrors.kernel.org/gnu/autoconf/autoconf-2.69.tar.gztar -zxvf autoconf-2.69.tar.gzcd autoconf-2.69/./configuremakesudo make installwget http://ftp.gnu.org/gnu/automake/automake-1.15.1.tar.gztar -zxvf automake-1.15.1.tar.gzcd automake-1.15.1/./configuremakesudo make install

m4与libtool的安装(也许不要)

sudo yum install m4sudo yum install libtool

第5步:构建并安装驱动程序

cd mongo-cxx-driver-r3.1.3/buildsudo make EP_mnmlstc_coremake && sudo make install

第6步:测试您的安装

将以下源文件的文件名保存test.cpp 在任何目录下:

#include <iostream>#include <bsoncxx/builder/stream/document.hpp>#include <bsoncxx/json.hpp>#include <mongocxx/client.hpp>#include <mongocxx/instance.hpp>int main(int, char**) {    mongocxx::instance inst{};    mongocxx::client conn{mongocxx::uri{}};    bsoncxx::builder::stream::document document{};    auto collection = conn["testdb"]["testcollection"];    document << "hello" << "world";    collection.insert_one(document.view());    auto cursor = collection.find({});    for (auto&& doc : cursor) {        std::cout << bsoncxx::to_json(doc) << std::endl;    }}

在pkg-config的帮助下编译

先设置PKG_CONFIG_PATH环境变量:在.bash_profile中配置环境变量

export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig

使用以下命令编译上面的测试程序:

c++ --std=c++11 test.cpp -o test $(pkg-config --cflags --libs libmongocxx)

成功生成test执行程序后执行./test报错
error while loading shared libraries: libmongocxx.so._noabi
解决方法:http://blog.chinaunix.net/uid-26212859-id-3256667.html

# cat /etc/ld.so.confinclude ld.so.conf.d/*.conf#su #切换到root用户# echo "/usr/local/lib" >> /etc/ld.so.conf# ldconfig

再次执行./test成功
程序创建testdb数据库及testcollection集合,输出如下:

{ "_id" : { "$oid" : "5a0c27a6e138232bc80c1852" }, "hello" : "world" }

参考:
官方安装文档:https://mongodb.github.io/mongo-cxx-driver/mongocxx-v3/installation/#step-3-download-the-latest-version-of-the-mongocxx-driver

http://blog.csdn.net/hhq163/article/details/52056948
http://www.bubuko.com/infodetail-2222544.html

MongoDB图形化界面Robo 3T(Robomongo)安装

wget https://download.robomongo.org/1.1.1/linux/robo3t-1.1.1-linux-x86_64-c93c6b0.tar.gztar -zxvf robo3t-1.1.1-linux-x86_64-c93c6b0.tar.gzcd robo3t-1.1.1-linux-x86_64-c93c6b0/./bin/robo3t

启动报错:./robo3t: /lib64/libc.so.6: version `GLIBC_2.18’ not found

wget http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gztar zxf glibc-2.18.tar.gz cd glibc-2.18/mkdir buildcd build/../configure --prefix=/usr #注意了,别修改路径make -j2sudo make install

参考:http://blog.csdn.net/u010526125/article/details/72626285