网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
05月14日漏签0天
linux吧 关注:501,518贴子:2,567,798
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 8回复贴,共1页
<<返回linux吧
>0< 加载中...

MongoDB C++开发环境搭建

  • 只看楼主
  • 收藏

  • 回复
  • 楼兰天边云
  • ----x--x
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
1F


  • 楼兰天边云
  • ----x--x
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
http://www.cnblogs.com/logicbaby/archive/2011/07/04/2097697.html


2025-05-14 21:12:04
广告
  • 楼兰天边云
  • ----x--x
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
MongoDB C++开发环境搭建
  初次接触MongoDB C++开发,发现官方单独提供的C++ Driver源码包似乎有些问题,经一番折腾后方才顺利的能跑,故在此记下第一篇。
   我使用的开发环境Slackware 13.37 x86,既然官方单独提供的C++ Driver有些问题那就全部MongoDB源码构建出.a库吧,首先从(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 <iostream>
#include "client/dbclient.h"
using namespace mongo;
void run() {
DBClientConnection c;
c.connect("localhost");
}
int main() {
try {
run();
cout << "connected ok" << endl;
} catch( DBException &e ) {
cout << "caught " << e.what() << endl;
}
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 <iostream>
#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" << endl;
} catch( DBException &e ) {
cout << "caught " << e.what() << endl;
}
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,这样使用和开发都可以了。
  (转载时请注明作者和出处。未经许可,请勿用于商业用途)
  更多文章请访问我的Blog: http://www.cnblogs.com/logicbaby


  • baigoogledu000
  • ----x-w-
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
楼兰兄,可以大致介绍一下mongodb的特点和优势么?


  • 楼兰天边云
  • ----x--x
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我认为最大的特点就是方便,传统数据库的设计、建模、建库建表脚本一大堆,MongoDB直接操作就是了。
MongoDB的效率据说很高,这点我自己还没有实验测过。


  • 8pm
  • ----x-w-
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
MongoDB 是好东西,这两年 sourceforge 已经从 PHP + 传统的 SQL 转移到 Python + MongoDB,另外一个类似的是 apache 的 CouchDB。
这两数据库属于这几年比较热的 NoSQL 类,细说属于 document oriented,就是说每项记录是一个 document,可以理解为类似 RDBMS 中的 row。它们好处是数据描述很方便(都用 json),而且使用前不需要设计 schema,在某些情况下也更直观,比如一些树等需要嵌套的情况。
我觉得如果不是有特殊需要,用一些 dynamic 的语言(比如 python)写 DB 的应用更方便,无论是开发还是维护都更省功夫。


  • 楼兰天边云
  • ----x--x
    9
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
MongoDB主要还是用在web和有高性能需求的方面。
做网游服务端的,用Python之类的估计不行~~~


  • mayadong7349
  • ----x---
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
膜拜 顶起


2025-05-14 21:06:04
广告
  • 8pm
  • ----x-w-
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
兄弟没有留意这几年 Python 在 Web 应用的发展吧,最近两三年的 PyCon 和 DjangoCon 很多人的演讲就是关于把架构移植到 Python 上的,其中包括很多大流量的网站
除了我上面提到的 sourceforge 已经大部分移植到 MongoDB + Python 下(PyCon 2011),还有很多例子
华盛顿时报 The Washington Times,用 Django (PyCon 2011)
14 年前 Yahoo Mail 一出现用的就是 Python
火狐插件官方网站,Django
2011 年头,Disque (提供 comments 云服务的) 累积访客流量达到 5 亿,峰值达到每秒 25000 请求,70万网站采用,记录了 1 亿 7000 万评论 。(参见 PyCon 2011)
火星探测漫游者(Mars Exploration Rover, MER)的一部分自动化控制就是 Python 完成的,NASA 好些方面有用 Python (参见 PyCon 2011)
2010 年温哥华冬季奥运官方网站是用 Django 写的 (该网站开发者每个季度组织一次 Django 和 Python 开发者的聚会,非正式的,基本上就是在酒吧聚餐,2010 年夏我去参加过一次,有幸认识了他)
其他的还有很多
古狗 和 你管子 后台大量使用 Python 也是旧闻了
Python 作为 Web 后端不慢,Web 应用通常瓶颈在 IO,还有链接上限,而不是动态产生网页内容。
我最不满意 Python,准确的说是 CPython 的地方只是 GIL,以致 concurrent 的东西在 Python 下老是好像差点,而不是 Python 的运行效率。
在效率不是问题的时候,开发和维护成本就变得很重要了,而 Python 的表达能力很强,(达到 C 的 6-6.5 倍,个人感觉在极端情况下能达到 10 倍或更多),开发和维护都很快捷方便,这种表达能力在常用的通用语言中基本上只有 Ruby 能达到,我觉得函数式语言类的,比如 Lisp 家族(Scheme 等),haskell 等表达能力应该也有这个级别,不过作为通用语言来开发一般应用的人始终不多。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 8回复贴,共1页
<<返回linux吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示