MongoDB使用C驱动基本的CRUD操作

作者:神秘网友 发布时间:2021-02-28 11:50:15

MongoDB使用C驱动基本的CRUD操作

查找文档

要使用C驱动程序查询MongoDB集合,请使用函数mongoc_collection_find_with_opts()。这会将光标返回到匹配的文档。以下示例遍历结果游标,并将匹配项打印stdout为JSON字符串。

使用文档作为查询说明符;例如,

{ "color" : "red" }

将匹配名称为“ color”且值为“ red”的任何文档。空文档{}可用于匹配所有文档。

第一个示例使用一个空的查询说明符来查找数据库“ mydb”和集合“ mycoll”中的所有文档。

#include bson/bson.h
#include mongoc/mongoc.h
#include stdio.h

int
main (int argc, char *argv[])
{
   mongoc_client_t *client;
   mongoc_collection_t *collection;
   mongoc_cursor_t *cursor;
   const bson_t *doc;
   bson_t *query;
   char *str;

   mongoc_init ();

   client =
      mongoc_client_new ("mongodb://localhost:27017/appname=find-example");
   collection = mongoc_client_get_collection (client, "mydb", "mycoll");
   query = bson_new ();
   cursor = mongoc_collection_find_with_opts (collection, query, NULL, NULL);

   while (mongoc_cursor_next (cursor, doc)) {
      str = bson_as_canonical_extended_json (doc, NULL);
      printf ("%s\n", str);
      bson_free (str);
   }

   bson_destroy (query);
   mongoc_cursor_destroy (cursor);
   mongoc_collection_destroy (collection);
   mongoc_client_destroy (client);
   mongoc_cleanup ();

   return 0;
}

编译代码并运行它:

$ gcc -o find find.c $(pkg-config --cflags --libs libmongoc-1.0)
$ ./find
{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }

在Windows上:

C:\ cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 find.c
C:\ find
{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }

要查找特定文档,请在中添加说明符query。本示例添加了一个调用以BSON_APPEND_UTF8()查找所有匹配的文档。{"hello":"world"}

#include bson/bson.h
#include mongoc/mongoc.h
#include stdio.h

int
main (int argc, char *argv[])
{
   mongoc_client_t *client;
   mongoc_collection_t *collection;
   mongoc_cursor_t *cursor;
   const bson_t *doc;
   bson_t *query;
   char *str;

   mongoc_init ();

   client = mongoc_client_new (
      "mongodb://localhost:27017/appname=find-specific-example");
   collection = mongoc_client_get_collection (client, "mydb", "mycoll");
   query = bson_new ();
   BSON_APPEND_UTF8 (query, "hello", "world");

   cursor = mongoc_collection_find_with_opts (collection, query, NULL, NULL);

   while (mongoc_cursor_next (cursor, doc)) {
      str = bson_as_canonical_extended_json (doc, NULL);
      printf ("%s\n", str);
      bson_free (str);
   }

   bson_destroy (query);
   mongoc_cursor_destroy (cursor);
   mongoc_collection_destroy (collection);
   mongoc_client_destroy (client);
   mongoc_cleanup ();

   return 0;
}
$ gcc -o find-specific find-specific.c $(pkg-config --cflags --libs libmongoc-1.0)
$ ./find-specific
{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }
C:\ cl.exe /IC:\mongo-c-driver\include\libbson-1.0 /IC:\mongo-c-driver\include\libmongoc-1.0 find-specific.c
C:\ find-specific
{ "_id" : { "$oid" : "55ef43766cb5f36a3bae6ee4" }, "hello" : "world" }


MongoDB使用C驱动基本的CRUD操作 相关文章

  1. deepin15.11系统使用罗技k380键盘

    罗技k380键盘官方支持安卓、windows、macos,就是没有支持Linux系统。在开发过程中使用的是Deepin15.11系统,如何连接罗技k380就是一个问题,折腾了一段时间后解决这个问题。记录下来留给需要的人少折腾。 在系统的蓝牙管理中是无法连接罗技k380,需要使用 b

  2. .net5 core webapi进阶之四:自定义中间件的使用

    一、什么是中间件先看看微软官方文档对中间件的定义: 官网地址:https://docs.microsoft.com/zh-cn/aspnet/core/fundamentals/middleware/view=aspnetcore-5.0 官网还给出了一张中间件调用的示意图,如下: 简而言之,我们可以把中间件理解成一个功能,它可

  3. web应用使用spring

    原文链接http://zhhll.icu/2021/01/06/%E6%A1%86%E6%9E%B6/spring/web%E5%BA%94%E7%94%A8%E4%BD%BF%E7%94%A8spring/ web应用使用spring 对于java而言,使用最多的还是web开发,如何在web应用中使用spring呢,web应用中没有main方法,而且必须在servlet容器加

  4. Python爬虫〇七———数据解析之XPATH的使用

    今天来总结最后一种说句解析的方式——XPath。 XPath是一门在XML文档中查找信息的语言,用于在XML文档中通过元素和属性进行导航。 XPath简介 下面来简单介绍一下XPath。 XPath的特点 XPath使用路径表达式在XML文档中进行导航 XPath包含一个标准函数库 XPath

  5. UNION 和 UNION ALL 的使用来简化编程工作

    瞄一眼需求: 有商品表 product ,仓库表 warehouse ,库存表 stockdet , product id_product productname 1 product1 2 product2 3 product3 4 product4 warehouse id_warehouse warehousename 1 warehouse1 2 warehouse2 3 warehouse3 stockdet id_ stock

  6. 转载:mongo-c-driver MongoDB使用笔记

    一、查询 1、函数 mongoc_collection_find_with_opts 和 mongoc_collection_find 如果只有查询条件,没有输出条件,这两个函数都可使用;如果有输出条件,则使用mongoc_collection_find_with_opts,结合关键字:projection 例子: query = BCON_NEW("AfileID

  7. php数组使用json_encode函数中文被编码成null的原因和解决办法

    json格式在开发中用的十分广泛。在php中json_encode函数可以直接将数组转成 json格式,十分方便。但是有可能你在使用json_encode函数时,无奈的发现中文被编码成null了。原来json只支持转义utf-8编码格式的中文。 所以如果你是数据是gbk格式或者gb2312格式

  8. Windows下QtCreator使用CMake编译GUI程序

    一、前言 为什么要用 CMake 来构建 Qt 的项目呢Qt 不是有 qmake 吗这样,岂不是多此一举 其实,应用 CMake 来构建项目还是非常有必要的,特别是当你的项目涉及到很多第三方库的时候,CMake 的优势非常突出。 Qt5.15.2 在之前选择安装模块的时候,自动帮我们

  9. 适合高并发情况下使用的分片map

    原始的解决方案 解决办法 代码 结构的定义 创建 Get、Set、Del 计数 获取全部键值对 清空 分片选取 性能测试 测试环境 并行情况下getset 非并行获取键值对 单独测试清空 不足 参考toc 原始的解决方案 go自带的map不是goroutine安全的,为解决这个问题,最简单

  10. 关于多态性的使用

    package day01;/** * 多态:可以理解为一种事物的多种形态 * 对象的多态性:父类的引用指向子类的对象 (或是子类的对象赋给父类的引用) *多态的使用:虚拟方法调用,有了对象的多态性以后,在编译期间,只能调用父类中声明的方法,但是在运行期间,实际调

每天更新java,php,javaScript,go,python,nodejs,vue,android,mysql等相关技术教程,教程由网友分享而来,欢迎大家分享IT技术教程到本站,帮助自己同时也帮助他人!

Copyright 2020, All Rights Reserved. Powered by 跳墙网(www.tqwba.com)|网站地图|关键词