热门标签 | 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,这样使用和开发都可以了。

推荐阅读
  • 本文介绍了如何使用Node.js通过两种不同的方法连接MongoDB数据库,包括使用MongoClient对象和连接字符串的方法。每种方法都有其特点和适用场景,适合不同需求的开发者。 ... [详细]
  • 2023年,Android开发前景如何?25岁还能转行吗?
    近期,关于Android开发行业的讨论在多个平台上热度不减,许多人担忧其未来发展。本文将探讨当前Android开发市场的现状、薪资水平及职业选择建议。 ... [详细]
  • 本文讲述了一位80后的普通男性程序员,尽管没有高学历,但通过不断的努力和学习,在IT行业中逐渐找到了自己的位置。从最初的仓库管理员到现在的多技能开发者,他的职业生涯充满了挑战与机遇。 ... [详细]
  • 微信小程序中的ActionSheet和Picker组件详解
    本文详细介绍了微信小程序中ActionSheet和Picker组件的使用方法及示例代码,帮助开发者更好地理解和应用这些组件。 ... [详细]
  • MongoDB核心概念详解
    本文介绍了NoSQL数据库的概念及其应用场景,重点解析了MongoDB的基本特性、数据结构以及常用操作。MongoDB是一个高性能、高可用且易于扩展的文档数据库系统。 ... [详细]
  • 2020年9月15日,Oracle正式发布了最新的JDK 15版本。本次更新带来了许多新特性,包括隐藏类、EdDSA签名算法、模式匹配、记录类、封闭类和文本块等。 ... [详细]
  • Scrum立会报告+燃尽图(十月十七日总第八次):分配Alpha阶段任务
    此作业要求参见:https:edu.cnblogs.comcampusnenu2018fallhomework2246项目地址:https:git.co ... [详细]
  • 在CentOS 7环境中安装配置Redis及使用Redis Desktop Manager连接时的注意事项与技巧
    在 CentOS 7 环境中安装和配置 Redis 时,需要注意一些关键步骤和最佳实践。本文详细介绍了从安装 Redis 到配置其基本参数的全过程,并提供了使用 Redis Desktop Manager 连接 Redis 服务器的技巧和注意事项。此外,还探讨了如何优化性能和确保数据安全,帮助用户在生产环境中高效地管理和使用 Redis。 ... [详细]
  • V8不仅是一款著名的八缸发动机,广泛应用于道奇Charger、宾利Continental GT和BossHoss摩托车中。自2008年以来,作为Chromium项目的一部分,V8 JavaScript引擎在性能优化和技术创新方面取得了显著进展。该引擎通过先进的编译技术和高效的垃圾回收机制,显著提升了JavaScript的执行效率,为现代Web应用提供了强大的支持。持续的优化和创新使得V8在处理复杂计算和大规模数据时表现更加出色,成为众多开发者和企业的首选。 ... [详细]
  • 触发器的稳态数量分析及其应用价值
    本文对数据库中的SQL触发器进行了稳态数量的详细分析,探讨了其在实际应用中的重要价值。通过研究触发器在不同场景下的表现,揭示了其在数据完整性和业务逻辑自动化方面的关键作用。此外,还介绍了如何在Ubuntu 22.04环境下配置和使用触发器,以及在Tomcat和SQLite等平台上的具体实现方法。 ... [详细]
  • 小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限
    小王详解:内部网络中最易理解的NAT原理剖析,挑战你的认知极限 ... [详细]
  • 微信小程序实现类似微博的无限回复功能,内置云开发数据库支持
    本文详细介绍了如何利用微信小程序实现类似于微博的无限回复功能,并充分利用了微信云开发的数据库支持。文中不仅提供了关键代码片段,还包含了完整的页面代码,方便开发者按需使用。此外,HTML页面中包含了一些示例图片,开发者可以根据个人喜好进行替换。文章还将展示详细的数据库结构设计,帮助读者更好地理解和实现这一功能。 ... [详细]
  • MongoVUE基础操作指南:轻松上手数据库管理
    本文介绍了MongoVUE的基础操作,旨在帮助用户轻松掌握数据库管理技巧。MongoVUE是一款功能强大的MongoDB客户端工具,虽然需要注册,但其用户友好的界面和丰富的功能使其成为许多开发者的首选。文中详细解释了安装步骤、基本配置以及常见操作方法,并对一些常见的问题进行了修正和补充,确保用户能够快速上手并高效使用MongoVUE进行数据库管理。 ... [详细]
  • CRZ.im:一款极简的网址缩短服务及其安装指南
    本文介绍了一款名为CRZ.im的极简网址缩短服务,该服务采用PHP和SQLite开发,体积小巧,约10KB。本文还提供了详细的安装步骤,包括环境配置、域名解析及Nginx伪静态设置。 ... [详细]
  • 天玑云客探讨微信公众号缺少留言评论功能的解决方案,提供多种实用方法以增强用户互动。 ... [详细]
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社区 版权所有