mongodb-c-driver使用详解----windows环境

本文档详细介绍了如何在Windows环境下编译MongoDB的C语言客户端库——mongodb-c-driver,并提供了编译步骤、注意事项以及使用示例,帮助开发者在VS环境下顺利进行MongoDB交互。

    网上的各种资源,无法正常编译出windows环境下的lib、dll文件库文件,只好自己动手,翻看官方文档,没想到官方的操作指引,也是不能达到预期,只好自己琢磨。为方便以后使用,整理成文档如下

一、介绍

     MongoDB C Driver也常被写成“libmongoc”、“mongodb-c-driver”,是MongoDB官方C语言客户端库,用于和MongoDB交互。

       当处理DSON数据时(MongoDB的二进制数据) mongodb-c-driver依赖于libbson

二、编译

依赖cmake工具编译,所以,先安装好cmake,配置好cmake环境变量,自行百度。

然后下载源码:

源码官方获取渠道:http://mongoc.org/

github: https://github.com/mongodb/mongo-c-driver

此文档所用版本为:mongo-c-driver-1.16.2

 

下载后,解压,打开命令行,cd进入根目录以下为命令 (我的解压目录为:“D:\应用程序\MongoDb\mongo-c-driver\mongo-c-driver-1.16.2x86”)

官方指导文档上的方法不可行,请按以下方法操作

cd /d D:\应用程序\MongoDb\mongo-c-driver\mongo-c-driver-1.16.2x86

 

cmake -G "Visual Studio 10 2010" "-DCMAKE_INSTALL_PREFIX=C:\mongo-c-driver" "-DCMAKE_PREFIX_PATH=C:\mongo-c-driver"

 

到根目录下查看,发现生成了.sln文件,用VS打开,会发现一大堆工程,先编译以下圏红工程:

编译成功后,再执行安装工程,提取出lib、dll、头文件等:

你会发现,在C:\mongo-c-driver目录下生成了以下文件:

到此,编译完成,下面说几个注意点:

“10 2010”字样,是针对不同版本的VS,可以自行选择。x64版本的,“10 2010”应该写成“10 2010 Win64”,默认是x86版本。备选项有:

 

       而“C:\mongo-c-driver”为生成开发文件的路径,可自行修改。

 

       针对不同的VS版本,按以上方法自行编译不同的版本

 

三、使用

官方使用说明:http://mongoc.org/libmongoc/current/visual-studio-guide.html

创建个win32控制台程序

msvc-create-project.pnguploading.4e448015.gif转存失败重新上传取消http://mongoc.org/libmongoc/current/_images/msvc-create-project.png

 

选择你对应和版本,注意别选错了,不然你会抓狂:

 

在工程名中,右键菜单==》properties:

C:\mongo-c-driver\include\libbson-1.0

C:\mongo-c-driver\include\libmongoc-1.0

设置成正确的路径即可,以上为参考。

 

设置lib文件库路径:

C:\mongo-c-driver\lib\bson-1.0.lib

C:\mongo-c-driver\lib\mongoc-1.0.lib

 

设置动态库的路径:

PATH=c:/mongo-c-driver/bin

 

最后引入头文件

#include <mongoc/mongoc.h>

 

写一段测试代码:

int _tmain(int argc, _TCHAR* argv[])

{

       mongoc_client_t *client;

       mongoc_collection_t *collection;

       mongoc_cursor_t *cursor;

       bson_error_t error;

       const bson_t *doc;

       const char *collection_name = "test";

       bson_t query;

       char *str;

       const char *uri_string = "mongodb://127.0.0.0/?appname=client-example";

       mongoc_uri_t *uri;

 

       mongoc_init ();

 

       uri = mongoc_uri_new_with_error (uri_string, &error);

       if (!uri) {

              fprintf (stderr,

                     "failed to parse URI: %s\n"

                     "error message:       %s\n",

                     uri_string,

                     error.message);

              return EXIT_FAILURE;

       }

 

       client = mongoc_client_new_from_uri (uri);

       if (!client) {

              return EXIT_FAILURE;

       }

 

       mongoc_client_set_error_api (client, 2);

 

       bson_init (&query);

 

#if 0

       bson_append_utf8 (&query, "hello", -1, "world", -1);

#endif

 

       collection = mongoc_client_get_collection (client, "test", collection_name);

       cursor = mongoc_collection_find_with_opts (

              collection,

              &query,

              NULL,  /* additional options */

              NULL); /* read prefs, NULL for default */

 

       while (mongoc_cursor_next (cursor, &doc)) {

              str = bson_as_canonical_extended_json (doc, NULL);

              fprintf (stdout, "%s\n", str);

              bson_free (str);

       }

 

       if (mongoc_cursor_error (cursor, &error)) {

              fprintf (stderr, "Cursor Failure: %s\n", error.message);

              return EXIT_FAILURE;

       }

 

       bson_destroy (&query);

       mongoc_cursor_destroy (cursor);

       mongoc_collection_destroy (collection);

       mongoc_uri_destroy (uri);

       mongoc_client_destroy (client);

       mongoc_cleanup ();

 

       return EXIT_SUCCESS;

}

 

官方教程:

http://mongoc.org/libmongoc/current/tutorial.html#installing

开发手册:http://mongoc.org/libmongoc/current/guides.html

API手册:http://mongoc.org/libmongoc/current/api.html

 

四、监控

可以监控MongoDB所有事件,待续…

官方教程:http://mongoc.org/libmongoc/current/application-performance-monitoring.html

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MingoJiang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值