c语言 mongodb,MongoDB的C语言编程实例
下面讲述在Linux平台下MongoDB的C语言编程实例
假设已经安装好了MongoDB。
1. 下载MongoDB的C语言驱动并安装
这里下载的MongoDB的C语言驱动是 mongo-c-driver-1.3.5.tar.gz。
解压后打开mongo-c-driver-1.3.5目录下的 README 文件,按其中讲的方法安装,如下:
# tar xzf mongo-c-driver-1.3.5.tar.gz
# cd mongo-c-driver-1.3.5
# ./configure
# make
# sudo make install
2. 启动MongoDB
# mongod
2016-07-10T11:53:20.075+0800 I CONTROL [initandlisten] MongoDB starting : pid=3071 port=27017 dbpath=/data/db 64-bit host=localhost.localdomain
2016-07-10T11:53:20.076+0800 I CONTROL [initandlisten] db version v3.2.7
2016-07-10T11:53:20.076+0800 I CONTROL [initandlisten] git version: 4249c1d2b5999ebbf1fdf3bc0e0e3b3ff5c0aaf2
...
3. 编写连接MongoDB的程序 test.c
#include
#include
#include
int
main (int argc,
char *argv[])
{
mongoc_client_t *client;
mongoc_database_t *database;
mongoc_collection_t *collection;
bson_t *command,
reply,
*insert;
bson_error_t error;
char *str;
bool retval;
/*
* Required to initialize libmongoc's internals
*/
mongoc_init ();//初始化libmongoc驱动
/*
* Create a new client instance
*/
client = mongoc_client_new ("mongodb://localhost:27017");//创建连接对象
/*
* Get a handle on the database "db_name" and collection "coll_name"
*/
database = mongoc_client_get_database (client, "db_name");//获取数据库
collection = mongoc_client_get_collection (client, "db_name", "coll_name");//获取指定数据库和集合
/*
* Do work. This example pings the database, prints the result as JSON and
* performs an insert
*/
command = BCON_NEW ("ping", BCON_INT32 (1));
retval = mongoc_client_command_simple (client, "admin", command, NULL, &reply, &error);//执行命令
if (!retval) {
fprintf (stderr, "%s\n", error.message);
return EXIT_FAILURE;
}
str = bson_as_json (&reply, NULL);
printf ("%s\n", str);
insert = BCON_NEW ("hello", BCON_UTF8 ("world"));//字段为hello,值为world字符串
if (!mongoc_collection_insert (collection, MONGOC_INSERT_NONE, insert, NULL, &error)) {//插入文档
fprintf (stderr, "%s\n", error.message);
}
bson_destroy (insert);
bson_destroy (&reply);
bson_destroy (command);
bson_free (str);
/*
* Release our handles and clean up libmongoc
*/
mongoc_collection_destroy (collection);//释放表对象
mongoc_database_destroy (database);//释放数据库对象
mongoc_client_destroy (client);//释放连接对象
mongoc_cleanup ();//释放libmongoc驱动
return 0;
}
4. 编译 test.c
# gcc -o test test.c -I/usr/local/include/libmongoc-1.0 -I/usr/local/include/libbson-1.0/ -lmongoc-1.0 -lbson-1.0
# ls
test test.c
5. 运行test
# ./test
{ "ok" : 1 }
连接MongoDB成功!
c语言 mongodb,MongoDB的C语言编程实例相关推荐
- MongoDB的C语言编程实例
下面讲述在Linux平台下MongoDB的C语言编程实例 假设已经安装好了MongoDB. 1. 下载MongoDB的C语言驱动并安装 这里下载的MongoDB的C语言驱动是 mongo-c-d ...
- mongo go 查询指定字段_Go语言 操作MongoDB数据库批量查询
数据操作是编程中避免不了的操作,这也就牵扯到了数据库的增删改查,而实际工作中我们最常用到的是增改查.今天要介绍的是Go 语言查询MongoDB数据库. 操作mongodb使用的包是"http ...
- 语言翻译成汇编语言_学习编程有没有必要从C语言和C++学起?应该怎么学?
硬件层级:这里也就是实体硬件,包括:CPU.内存.显卡等等...这些都不属于软件的范畴内. 汇编层级:在之前没有C/C++以及java之前,是汇编的年代.那么汇编语言对于我们来说,可读性是很查的,不适 ...
- python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程
本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...
- c语言编程经典实例利润,C语言经典编程实例100题解答
C语言经典编程实例100题 答案+答案 C语言经典编程实例100题C语言程序实例100个(一) [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数,都是多少, 1.程序 ...
- c++ 结构体初始化_单片机C语言 - 基于结构体的面向对象编程技巧
单片机C语言 - 基于结构体的面向对象编程技巧 一.面向对象 面向对象是软件开发方法,是相对于面向过程来讲的.通过把数据与方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式 ...
- 基于C语言的软件,基于C语言的计算机软件编程分析
摘 要 C语言是在B语言的基础上发展而来,其功能强大,使用便利,是目前计算机软件编程最基础的语言.C语言有着特殊的编程技巧,他的函数库中包含了编程所需的大部分函数,因此不需要程序员再另外定义:C语言中 ...
- Wolfram 语言之父 Stephen Wolfram :编程的未来
以后说到编程,我们想到的不单单是程序员了.未来的生活与计算机紧密相连,编程的未来与我们息息相关.用计算机完成我们所有感兴趣的事可能成为现实. 作者 |Nick Heath 译者 |弯月,责编 | ma ...
- 单片机c语言必背代码_单片机编程用C语言还是汇编?
单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂.目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求.单片 ...
- c语言编写计算机软件,基于C语言的计算机软件编程分析.doc
基于C语言的计算机软件编程分析.doc 基于C语言的计算机软件编程分析 摘要:C语言是一种重要的编程语言,在当今IT业的运用十分广泛.使用C语言来编写的程序简单.直接.准确,极大地推动了计算机软件的更 ...
最新文章
- 模态框到阻止冒泡时间
- java数据库编程——事务
- 如何解决IIS配置报错问题:存储空间不足?
- ui设计移动端字体适配_超全面的移动端UI 设计规范整理汇总
- 服务端/web+客户端模式配置
- 2017.8.10 树上染色 失败总结
- 9-3-斐波那契查找-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
- 冒泡排序最佳情况的时间复杂度,为什么是O(n)
- 第2章 理解memcached的内存存储
- 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(一):网络基础
- 时域有限差分法matlab,本科 研究生《时域有限差分法(基于MATLAB)》
- 中原银行AI面试记录
- 光电池和光电二极管的区别
- wpa supplicant
- Python爬取热门微博,并存储到MySQL中
- iOS 地图导航路线规划详解
- ENSP华为路由器FTP服务器实验
- 常用的几款Vue移动端UI推荐
- linux系统一般用来干嘛
- bin 文件复制十六进制00 到其它地方变为 20