zoukankan      html  css  js  c++  java
  • 转载:mongoc连接数据库

    转载:http://blog.sina.com.cn/u/2002809853

    最近一段时间要用c语言操作mongodb,但是在网上找到的资料太少,看到的大多数是英文,阅读不大方便,并且要仔细研究才能理解,因此,记录这段时间的学习内容与理解以备忘,同时希望能帮到在寻找这方面内容的童鞋们。
    首先,编译mongo-c-driver这个东西耗费了很多时间,开始的时候按照网上的教程在win7下编译,但是出现各种各样的问题,最后一步一直提示找不到SConstruct文件,找了很久的原因都没找到,结果在放弃的第二天竟然偶然在网上发现了是因为我下的mongo-c-driver有问题,有个版本里面的是有SConstruct的而我下的没有。后来又在Linux下编译,也是出现了各式各样的问题,结果不是我自己编译成功的。不知道是mongo版本升级的原因还是因为在Linux环境的原因,用C语言对mongo的操作在Linux下与我第一次编译时很不一样,头文件引用应该是mongoc.h 而不是mongo.h。以下是mongoc的操作。
    声明client的语句是:mongoc_client_t * client;
    创建一个新的mongoc的client用的语句是
    mongoc_client_t * mongoc_client_new (const char *uri_string);或者
    mongoc_client_t * mongoc_client_new_from_uri (const mongoc_uri_t *uri);
    第二个中的uri是第一个中uri_string的实例化,uri_string是一个字符串,要遵循mongoc_uri的规则。
    其中mongoc_uri的创建为
    mongoc_uri_t * uri;
    uri = mongoc_uri_new(uri_string);
    uri_string的规则为:
    mongodb://                             <1>
      [username:password@]                  <2>
      host1                               <3>
      [:port1]                            <4>
      [,host2[:port2],...[,hostN[:portN]]]     <5>
      [/[database]                         <6>
      [?options]]                          <7>
    (1)mongodb是MongoDB协议的说明符(specifier)
    (2)可选的用户名和密码
    (3)这是uri唯一必须的部分,它将指定主机名、IP地址或者UNIX域套接字中的任意一个
    (4)可选的端口号,默认的是27017
    (5)额外的可选主机和端口,可以制定多个主机
    (6)如果连接字符串包含认证的证书,这里要写上要认证的数据库名称,如果/database没有具体制定并且连接字符串有认证要求,默认连接“admin”数据库
    (7)连接的特定选择。如果/database没有通过,需要在上一个主机和选择字符串(the string of options)开始的问号那里加上一个斜线
     
    另外推荐一个网站:http://code.ohloh.net/
    上面可以找到很多百度找不到的代码。
    以上。
  • 相关阅读:
    Codewars Solution:Two to One
    Codewars Solution:Get the Middle Character
    golang jwt+token验证
    C#基础知识点梳理二
    C#基础知识点梳理一
    逻辑值
    step-1
    视频第5讲-ID转换
    通过向量访问矩阵
    跟着jmzeng学习GEO数据分析-GEO42872_1--题外
  • 原文地址:https://www.cnblogs.com/liweikuan/p/14456144.html
Copyright © 2011-2022 走看看