下面讲述在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语言编程实例相关推荐

  1. MongoDB的C语言编程实例

     下面讲述在Linux平台下MongoDB的C语言编程实例 假设已经安装好了MongoDB. 1. 下载MongoDB的C语言驱动并安装 这里下载的MongoDB的C语言驱动是 mongo-c-d ...

  2. mongo go 查询指定字段_Go语言 操作MongoDB数据库批量查询

    数据操作是编程中避免不了的操作,这也就牵扯到了数据库的增删改查,而实际工作中我们最常用到的是增改查.今天要介绍的是Go 语言查询MongoDB数据库. 操作mongodb使用的包是"http ...

  3. 语言翻译成汇编语言_学习编程有没有必要从C语言和C++学起?应该怎么学?

    硬件层级:这里也就是实体硬件,包括:CPU.内存.显卡等等...这些都不属于软件的范畴内. 汇编层级:在之前没有C/C++以及java之前,是汇编的年代.那么汇编语言对于我们来说,可读性是很查的,不适 ...

  4. python语言支持函数式编程_Python语言之Pyhton入门笔记函数式编程

    本文主要向大家介绍了Python语言之Pyhton入门笔记函数式编程,通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 一,匿名函数 def add(x,y) return x+y ...

  5. c语言编程经典实例利润,C语言经典编程实例100题解答

    C语言经典编程实例100题 答案+答案 C语言经典编程实例100题C语言程序实例100个(一) [程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数,都是多少, 1.程序 ...

  6. c++ 结构体初始化_单片机C语言 - 基于结构体的面向对象编程技巧

    单片机C语言 - 基于结构体的面向对象编程技巧 一.面向对象 面向对象是软件开发方法,是相对于面向过程来讲的.通过把数据与方法组织为一个整体来看待,从更高的层次来进行系统建模,更贴近事物的自然运行模式 ...

  7. 基于C语言的软件,基于C语言的计算机软件编程分析

    摘 要 C语言是在B语言的基础上发展而来,其功能强大,使用便利,是目前计算机软件编程最基础的语言.C语言有着特殊的编程技巧,他的函数库中包含了编程所需的大部分函数,因此不需要程序员再另外定义:C语言中 ...

  8. Wolfram 语言之父 Stephen Wolfram :编程的未来

    以后说到编程,我们想到的不单单是程序员了.未来的生活与计算机紧密相连,编程的未来与我们息息相关.用计算机完成我们所有感兴趣的事可能成为现实. 作者 |Nick Heath 译者 |弯月,责编 | ma ...

  9. 单片机c语言必背代码_单片机编程用C语言还是汇编?

    单片机是一种可编程器件,单片机的出现使硬件设计变得更为简单,产品的功能也更强大,而程序就是单片机的灵魂.目前功能稍微复杂一点的电子产品,都是以单片机为核心,再加以不通的外设电路实现不通的功能需求.单片 ...

  10. c语言编写计算机软件,基于C语言的计算机软件编程分析.doc

    基于C语言的计算机软件编程分析.doc 基于C语言的计算机软件编程分析 摘要:C语言是一种重要的编程语言,在当今IT业的运用十分广泛.使用C语言来编写的程序简单.直接.准确,极大地推动了计算机软件的更 ...

最新文章

  1. 模态框到阻止冒泡时间
  2. java数据库编程——事务
  3. 如何解决IIS配置报错问题:存储空间不足?
  4. ui设计移动端字体适配_超全面的移动端UI 设计规范整理汇总
  5. 服务端/web+客户端模式配置
  6. 2017.8.10 树上染色 失败总结
  7. 9-3-斐波那契查找-查找-第9章-《数据结构》课本源码-严蔚敏吴伟民版
  8. 冒泡排序最佳情况的时间复杂度,为什么是O(n)
  9. 第2章 理解memcached的内存存储
  10. 《Python黑帽子:黑客与渗透测试编程之道》读书笔记(一):网络基础
  11. 时域有限差分法matlab,本科 研究生《时域有限差分法(基于MATLAB)》
  12. 中原银行AI面试记录
  13. 光电池和光电二极管的区别
  14. wpa supplicant
  15. Python爬取热门微博,并存储到MySQL中
  16. iOS 地图导航路线规划详解
  17. ENSP华为路由器FTP服务器实验
  18. 常用的几款Vue移动端UI推荐
  19. linux系统一般用来干嘛
  20. bin 文件复制十六进制00 到其它地方变为 20

热门文章

  1. [Java反序列化]AspectJWeaver反序列化
  2. 计算机网络第期末试题及答案,计算机网络期末考试试题及答案
  3. unity3d 怎么生成网页版_unity3D u3D网页游戏制作游戏优势
  4. R语言-解决for modifying Try removing ‘00LOCK’的问题
  5. 从网站建设看中外差异
  6. 解析GitHub首页3D动画
  7. 数字信号处理重要学习资源
  8. 喝酒娱乐小游戏微信小程序源码
  9. 自定义firefox账户服务器出错,我在确认 Firefox 账户时出现了问题
  10. 智慧旅游和智慧景区建设实施方案