ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

一例·C语言连接mongodb并创建文档,插入记录

2020-11-19 02:01:25  阅读:462  来源: 互联网

标签:mongoc mongodb collection C语言 183 client doc bson


上机环境ubuntu20.0.4  QtCreator

准备活动,安装libmongoc 和libbson

最好sudo apt 安装 mongodb,这样我们就能获得 mongoc.h

别忘了,在QtCreator选择根目录,右键点击Add Library添加libmongoc.so和libbson.so库函数

#include <stdio.h>
#include <bson/bson.h>
#include <mongoc/mongoc.h>
int main()
{

    mongoc_client_t *client;
    mongoc_collection_t *collection;
    bson_error_t error;
    bson_oid_t oid;
    bson_t *doc;

    mongoc_init();

    client = mongoc_client_new ("mongodb://192.168.34.128:27017");
    collection = mongoc_client_get_collection (client, "ourworld", "mywish");

    doc = bson_new ();
    bson_oid_init (&oid, NULL);
    BSON_APPEND_OID (doc, "_id", &oid);
    const char* mykey = "description";
    const char* myval ="超级喜欢付高峰";
    bson_append_symbol (doc, mykey,strlen(mykey), myval,strlen(myval));//添加键值对集合
    BSON_APPEND_UTF8 (doc, "hello","world");//另一种添加键值对的方法,key值是hello,val值是world
    if (!mongoc_collection_insert_one (
           collection, doc, NULL, NULL, &error)) {
        fprintf (stderr, "%s\n", error.message);
    }

    bson_destroy (doc);
    mongoc_collection_destroy (collection);
    mongoc_client_destroy (client);
    mongoc_cleanup ();

    printf("Hello World!\n");
    return 0;
}

 

 

截止2020年11月,mongodb官方提供了C语言操作mongodb的相关教程,其地址位于 http://mongoc.org/libmongoc/current/index.html

其思路大概是mongo_client_t用于维护与mongodb的连接,mongo_collection_t是和集合相关的操作,bson文档是集合里的每一条记录

所有操作完成后,依次释放bson文档,释放集合mongo_collection,释放mongo_client

标签:mongoc,mongodb,collection,C语言,183,client,doc,bson
来源: https://www.cnblogs.com/saintdingspage/p/14003181.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有