热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MongoDB数据库的c++编程开发环境搭建

初次接触MongoDBC++开发,发现官方单独提供的C++Driver源码包似乎有些问题,经一番折腾后方才顺利的能跑,故在此记下第一篇。我使用的开发环境Slackware13.37x86,既然官方单独提供的C++Driver有些问题那就全部MongoDB源码构建出.a库吧,首先从(htt
  初次接触MongoDB C++开发,发现官方单独提供的C++
Driver源码包似乎有些问题,经一番折腾后方才顺利的能跑,故在此记下第一篇。

  我使用的开发环境Slackware 13.37 x86,既然官方单独提供的C++
Driver有些问题那就全部MongoDB源码构建出.a库吧,首先从( "http://downloads.mongodb.org/src/mongodb-src-r1.8.2.tar.gz">http://downloads.mongodb.org/src/mongodb-src-r1.8.2.tar.gz)处下载MongoDB的源码包,编译后包括了MongoDB本身和C++
Driver库。   安装前的准备:
mongodb依赖js库,slackware下可以从slackbuilds.org用sbopkg安装上即可。
mongodb依赖boost库,slackware安装的开发工具库中已经包含。
mongodb使用scons构建工具,故需要安装scons,slackware下也可以从slackbuilds.org安装   把mongodb安装在$HOME/usr/mongo:
$ mkdir -p ~/usr/mongo
$ tar xvf mongodb-src-r1.8.2.tar.gz
$ scons --prefix=$HOME/usr/mongo --full install
  执行完后查看$HOME/usr/mongo下三个目录bin、include、lib。
  启动mongodb:
$ mkdir -p ~/usr/mo_data
$ cd ~/usr/mongo/bin
$ ./mongo --dbpath=$HOME/usr/mo_data
  写个简单的小程序测试下生成的libmongoclient.a。
#include

#include "client/dbclient.h"
using namespace mongo;
void run() {

DBClientConnection c;

c.connect("localhost");

}
int main() {

try {

run();

cout <<"connected ok" <
} catch( DBException &e ) {

cout <<"caught " <
}

return 0;

}
$ g++ mon2.cpp -I ~/usr/mongo/include/mongo/
~/usr/mongo/lib/libmongoclient.a -lboost_thread -lboost_filesystem
-lboost_program_options
$ ./a.out

connected ok
  第二个程序执行简单的插入。
#include

#include "client/dbclient.h"
using namespace mongo;
int main() {
DBClientConnection conn;

BSONObj p = BSONObjBuilder().append("name", "Joe").append("age",
33).obj();
try {

conn.connect("localhost");

cout <<"connected ok" <
} catch( DBException &e ) {

cout <<"caught " <
}
conn.insert("tutorial.persons", p);

conn.insert("tutorial.persons", p);

conn.insert("tutorial.persons", p);

return 0;

}
$ g++ mon3.cpp -I ~/usr/mongo/include/mongo/
~/usr/mongo/lib/libmongoclient.a -lboost_thread -lboost_filesystem
-lboost_program_options
$ ./a.out
connected ok
   运行mongo客户端验证插入:
$ cd ~/usr/mongo/bin
$ ./mongo
MongoDB shell version: 1.8.2

connecting to: test

> show dbs

admin   (empty)

local   (empty)

tutorial        0.0625GB

> use tutorial

switched to db tutorial

> db.persons.find()

{ "_id" : ObjectId("4e11a582b918b66ebf3835fb"), "name" : "Joe",
"age" : 33 }

{ "_id" : ObjectId("4e11a582b918b66ebf3835fc"), "name" : "Joe",
"age" : 33 }

{ "_id" : ObjectId("4e11a582b918b66ebf3835fd"), "name" : "Joe",
"age" : 33 }

>
  OK,这样使用和开发都可以了。

推荐阅读
  • Allegro总结:1.防焊层(SolderMask):又称绿油层,PCB非布线层,用于制成丝网印板,将不需要焊接的地方涂上防焊剂.在防焊层上预留的焊盘大小要比实际的焊盘大一些,其差值一般 ... [详细]
  • 校园表白墙微信小程序,校园小情书、告白墙、论坛,大学表白墙搭建教程
    小程序的名字必须和你微信注册的名称一模一样在后台注册好小程序。mp.wx-union.cn后台域名https。mp.wx-union.cn ... [详细]
  • step1.为mongodb添加admin管理员root@12.154.29.163:~#mongoMongoDBshellversionv3.4.2connectingto:mo ... [详细]
  • 一、前言在数据库中,慢查询日志通常是用来进行优化数据库,MySQL中存在慢查询,Mongodb中也是如此。在Mongo中的慢查询属于Mon ... [详细]
  • Abp+MongoDb改造默认的审计日志存储位置
    一、背景在实际项目的开发当中,使用AbpZero自带的审计日志功能写入效率比较低。其次审计日志数据量中后期十分庞大,不适合与业务数据存放在一起。所以我们可以重新实现A ... [详细]
  • 今天我们学习,数据库mongodb的使用,最下面有mongodb的下载链接。pipinstallpymongo首先安装pymongo,然后在需要用到的地方importpymongo ... [详细]
  • MongoDB学习:(二)MongoDB简单使用
    MongoDB学习:(二)MongoDB简单使用MongoDB使用:执行mongodb的操作之前,我们需要运行命令,来进入操作命令界面&amp;amp;gt;mongo提示 ... [详细]
  • 在线教育平台的搭建及其优势
    在线教育平台的搭建对于教育发展来说是一次重大进步。未来在线教育市场前景广阔,但许多老师不知道如何入手。本文介绍了在线教育平台的搭建方法以及与传统教育相比的优势,包括时间、地点、空间的灵活性,改善教育不公平现象以及个性化教学的特点。在线教育平台的搭建将为学生提供更好的教育资源,解决教育不公平的问题。 ... [详细]
  • 程序安装包制作工具 v1.0官方版免费下载
    本文介绍了一款名为程序安装包制作工具 v1.0官方版的软件,该软件可以用于应用程序的安装打包,只需几步就能完成整个安装向导程序的制作。你可以将编译好的应用程序和相关文件打包生成一个可执行的安装文件进行发布。该软件免费下载,下载网址为http://www.xiazai.com/wins6890。 ... [详细]
  • 微信开放外链的第二阶段:腾讯和阿里巴巴的博弈
    2021年11月30日,微信开始进行“开放外链”的第二阶段,允许在微信个人会话中打开外部链接和在微信群中打开电商链接。虽然这是腾讯和阿里巴巴都能接受的阶段性结果,但双方都不会太满意。接下来几个月,腾讯和阿里将展开复杂的博弈,我们作为外人很难看清全过程。工信部从未要求腾讯无条件开放微信API,本次开放的也只是普通的HTTP链接。 ... [详细]
  • 本文讨论了小学编程普及的必要性,以及学生在学习编程过程中所需具备的数学能力和综合能力。通过采访获奖的牛娃发现,学习编程需要耐得住寂寞,并且需要花费大量的时间和精力。 ... [详细]
  • 小程序获取用户信息按钮返回中文地址
    1.我是根据官方文档中描述去写的按钮 可以看到button中加了zh_CNopen-typegetUserInfobindgetuserinfogetU ... [详细]
  • 小程序自动授权和手动接入的方式及操作步骤
    本文介绍了小程序支持的两种接入方式:自动授权和手动接入,并详细说明了它们的操作步骤。同时还介绍了如何在两种方式之间切换,以及手动接入后如何下载代码包和提交审核。 ... [详细]
  • 在csv导入期间是否有合并文档的方法。我在Studio3T的导入csv中找不到合并选项 ... [详细]
  • MySQL语句大全:创建、授权、查询、修改等【MySQL】的使用方法详解
    本文详细介绍了MySQL语句的使用方法,包括创建用户、授权、查询、修改等操作。通过连接MySQL数据库,可以使用命令创建用户,并指定该用户在哪个主机上可以登录。同时,还可以设置用户的登录密码。通过本文,您可以全面了解MySQL语句的使用方法。 ... [详细]
author-avatar
风飞满天2602938511
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有