linux下如何提取bson中的MongoDB唯一标识_id

已经通过mongoc_collection_find()和mongoc_cursor_next()拿到想要的bson_t 类型对象现在想提取该对象中包含的MongoDB唯一标识_id。
图片说明

3个回答

自己找了一个笨方法实现了。

转成json,然后用_id做key来访问对应的数据

 while (mongoc_cursor_more (cursor) && mongoc_cursor_next (cursor, &doc)) {
      str = bson_as_json (doc, NULL);
      printf ("%s\n", str);
      bson_free (str);
   }
qq_33672112
半英里外的雨 您的意思是不是对C指针str做键值对"key=value"字符串,然后解析出_id的值
大约一年之前 回复
qq_33672112
半英里外的雨 具体如何转为json对象,您写的str应该是一个字符指针。因为初学,请多包涵。
大约一年之前 回复
oyljerry
oyljerry 回复qq_33672112: 转成json对象,然后_id是key
大约一年之前 回复
qq_33672112
半英里外的雨 我写的代码和您给的差不多,我想要的是如何从str里提取_id信息,或者从doc提取_id信息,您说的用_id做key具体怎么做,请指教。
大约一年之前 回复
 bson_t query;
bson_t child;
bson_init(&query);

BSON_APPEND_INT64(&query, "id", 0);

mongoc_cursor_t m_pCursor = mongoc_collection_find(m_pCollection,
    MONGOC_QUERY_NONE,
    0,
    0,
    0,
    &query,
    NULL,  /* Fields, NULL for all. */
    NULL); /* Read Prefs, NULL for default */

bson_destroy(&query);
bson_error_t error;
if (mongoc_cursor_error(m_pCursor, &error)) {
    cout << "Query Failure: " << error.message;
    return;
}

const bson_t *doc;

while (!mongoc_cursor_error(m_pCursor, &error)
    && mongoc_cursor_more(m_pCursor))
{
    if (mongoc_cursor_next(m_pCursor, &doc))
    {
        GetRecord(doc);
    }
    else
    {
        break;
    }
}
if (mongoc_cursor_error(m_pCursor, &error)) {
    cout << "Query Failure: " << error.message;
}

mongoc_cursor_destroy(m_pCursor);
qq_33672112
半英里外的雨 回复dabocaiqq: GetRecord函数是要引用哪个头文件还是自己定义的,另外记录中包含的_id怎么提取。请指教
大约一年之前 回复
dabocaiqq
请你们大家多多姿瓷我菠菜菌 回复qq_33672112: 获取文档的记录
大约一年之前 回复
qq_33672112
半英里外的雨 GetRecord(doc);起到什么作用
大约一年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
mongodb bson
java操作mongodb所需的jar包,包括mongodb-driver-core-3.6.4,mongo-java-driver-3.6.4,bson-3.6.4
MongoDB中Bson文档的创建
                MongoDB中存储Bson文档的方式 MongoDB中以bson的数据格式存储文档,C驱动程序使用LibsBon创建BSON文档。构建bson文档的主要方式如下:附加关键值对,使用BCON,或解析JSON。 示例:创建如下所示的一个bson文档             {                    id: &quot;9239-sakjh-8wej-ksh...
对于bson和mongoDB的小记
1、什么是bson? 它是一种二进制式的数据存储格式,基于json实现。可以用作网络数据交换的一种数据形式,类似于protobuf。 2、bson和json的区别?有什么优缺点? 和json的区别:比json拥有更多的类型,例如array、Date、BinData。 优缺点:优点是灵活性高(轻量型、可遍历性、高效性),缺点是空间利用率不是很理想。 3、bson和mon
mongodb导入bson数据
本地数据库导入bson格式的数据: $ mongorestore.exe --host 127.0.0.1 --port 27017 -d dbname bsonFile host:127.0.0.1 ——本地域名,如果是服务器上的地址,域名需相应改变 port:27017 ——为默认端口号,无论是本地数据库还是服务器上的一般不会改动 dbname:数据库名 bsonFile:b
BSON及mongoDB数据类型
JSON是一种被广泛使用的轻量级的数据交换格式,支持现今绝大多数主流的开发语言。而近几年崛起的mongDB则采用了类JSON的数据格式,在JSON之上进行了丰富和增强,使得mongoDB可以处理及报错更大的数据类型。本文就2者进行描述同时给出m...
MONGODB的bson size问题
bson size有什么限制吗?
id唯一标识
id是唯一标识,任何一个都不能重名。(即使它们表示同一类东西) 再次用的时候必须换一个id名
14.IOS中系统唯一标识ID
在正式开始前,先介绍iOS保存重要信息的一种方式keychain iOS的keychain服务提供了一种安全的保存私密信息(密码,序列号,证书等)的方式,每个ios程序都有一个独立的keychain存储。相对于NSUserDefaults、文件保存等一般方式,keychain保存更为安全,而且keychain里保存的信息不会因App被删除而丢失,所以在重装App后,keychain里的数据还能使
MongoDB C Driver中的BSON和JSON字符串的相互转换
由于编译的C++版本的MongoDB库中的一些函数名,和其他第三方库(zmq、czmq冲突),时间仓促没时间去研究添加MongoDB的内部命名空间的一些方法,去避免冲突。而是选择了更加简单粗暴的方法,直接用MongoDB C Driver。 记录一下BSON类型的一些使用方法。参考的是官网的参考文档:http://mongoc.org/libmongoc/current/tutorial.htm...
oci批量提取oracle数据写入mongodb或写成bson文件
项目需要,将oracle中上亿的数据表数据提取到mongdb,通过api单条插入,效率极低。通过第三方工具data-integration导入,效率还不够高。最终只能根据需求编写程序。 最初思路是解析oracle导出的dump二进制文件,在转换为bson二进制导入mongodb,但是根据测试,效率依旧较低。发现oracle与mongodb都采用批处理,效率算数有进步,最终决定采用编写程序实现。以
如何提取asp?id=123中的id
我在输入http://127.0.0.1/jpg.asp?id=123后,想在jpg.asp中提取id 值rn用request.servervariables("path_info")后在处理,但是返回值总是jpg.asprn而不是jpg.asp?id=123 这个id 值是上个文件传送来的。用什么办法提取当前网址中的rnid值?或原URL中的id值?
网卡ID是否唯一标识
我做的一些小软件加密都是使用网卡进行加密,但据传windows取得网卡ID是取注册表中的一个值,如果修改这个值取得的网卡ID号就可能不唯一了,是这么回事吗
唯一标识同ID的CStatic
在一个Dialog上用同一个ID new了多个CStatic(CStatic *pStatic = new CStatic[5]),rn请问如何才能找到其中某个的CStatic(不能用pStatic)
golang生成唯一标识id
package main import ( "crypto/md5" "crypto/rand" "encoding/base64" "encoding/hex" "fmt" "io" ) //生成32位md5字串 func GetMd5String(s string) string {
mongodb document类型在bson包里找不到
[img=https://img-bbs.csdn.net/upload/201704/09/1491742019_301075.png][/img]rnrn引包时因不到 org.bson 里的document rn求救大神
对mongodb导出的.bson文件直接进行查询
如果要查询通过mongodb的mongodump导出的.bson文件(比如历史备份),是一件比较麻烦的事情。简单写了一个工具sonq,可以针对.bson文件直接进行查询。 首先可以通过pip进行安装 sudo pip install sonq 然后就可以通过sonq这个命令行工作对.bson文件进行查询了,下面举几个例子。 直接输出source.bson文件中的内容,不做过滤: so...
BSON
MongoDB中国15位Professionor获得者之一。n本系列课程通过讲解 aggregation/Philosophy & Features/CRUD/Index/Replication/Sharding/Application Administration/Server Administration几个模块对我们的C100DBA考试进行拆分讲解。
如何提取ID值
我在做訂單的時候,需要把信息寫入一張主表(保存訂單的信息)一張子表(保存詳細訂單的詳細條目),子表和主表用主表的ID(自加)值來關聯。rn我想問一下如果在添加了主表記錄后速度得到他所寫入的ID呢?因為ID也要寫在子表內,以便關聯。rn現在我是這樣做:添加完主表后,再根據訂單的單號去讀出ID,再寫入子表,但這樣難免會出錯,誰有更好的方法呢?急。。
Hive中生成随机唯一标识ID的方法
HIVE中处理的数据往往比较多,在处理数据的时候希望给处理得到的数据一个ID标识,这时候可以用到UUID。UUID的算法的核心思想是结合机器的网卡、当地时间、一个随即数来生成UUID。从理论上讲,如果一台机器每秒产生10000000个UUID,则可以保证(概率意义上)3240年不重复。UUID 的目的,是让分布式系统中的所有元素,都能有唯一的标识,而不需要透过中央控制端来做标识。如此一来,每个人都可
MongoDB导入文件夹(内含json和bson文件)
我的原文所在 http://yanmin.in/archive.html1.使用mongo命令将数据库删除: use db_name; db.dropDatabase() 2.导入(指定文件夹)数据: mongorestore -d db_name 文件夹目录
如何通过应用层获得linux下硬件的唯一标识?
我想取得是硬件的唯一标识码,就是每个硬件出厂后就不能更改的标识码,比如网卡有网卡的唯一标识码,我想,主板,硬盘应该都有,只是不知道能不能用程序在应用层读取出来。rn想做个软件加密的东西,根据硬件唯一标识生成key,不知道如何下手,有知道的兄弟给点帮助吧,不胜感激。
文档唯一标识id改变的问题
通过系统内的备份恢复函数,依靠代理,进行恢复。结果导致文档的唯一标识id发生变化。如何才能不变?rnrn目前问题是:现场有lotus,但是为了更新方便,采用了以上的备份恢复方法。如何方便的更改现场的程序,并且要保留现场的数据。
MongoDB有没有类实现bson和 json的转化?
rn找半天也没找到。。。rnrn.net自带的类转完成rn"_id" : ObjectId("5001047632e3988ad237a206"), "name" : "xx", "date" : ISODate("2012-07-14T05:32:38.189Z")rnrnMongoDB有没有类实现bson和 json的转化?rnrn最好来个例子看看
Sql唯一标识ID函数问题
我现在需要一个12位唯一标识ID,要求是年2位,月2位,日2位,序列号6位~~rn请问这个函数应该怎么写了?
服务器唯一标识 id 的生成方法
服务器唯一标识 id 的生成方法 [机房] + ip地址(32为int)+ timestamp(毫秒) + seq(16 或者 32位) 机房表示可选,如果业务扩大,需要机房区分。如果业务量太大,在1ms之内需要产生大于4g的id,只需要扩展seq
BSON的介绍及BSON与JSON的区别
说明 新公司在用MongoDB,由于使用MongoDB时其中有一个很重要的类Document,翻看源码时发现他实现了Bson,本人之前对其不了解,故而有了这篇文章。 概念 参考百科说明:BSON( Binary Serialized Document Format) 是一种二进制形式的存储格式,采用了类似于 C 语言结构体的名称、对表示方法,支持内嵌的文档对象和数组对象,具有轻量性、可遍历性
如何提取数据库中的最大ID号?
数据库中有一ID字段,递增1,如何在PB中得到当前表中最大ID号?
mongoDb中_id和ObjectId详细说明
ObjectId使用12字节的存储空间,是一个由24个16进制数字组成的字符串(每个字节可以存储两个16进制数字)。 说明: 12字节(每个字节用2个16位的组成), 因此,总共24个16位的数字。   1:如果快速的连续创建多个ObjectId,会发现每次只有最后几位数字有变化。 另外,中间的几位数字也会变化(要是在创建的过程中停顿几秒) 这是ObjectId的创建方式导致的。 ...
bson的操作
bson的操作flyfish 2015-8-27使用的是bson-cppbson的创建//{ name : 'joe', age : 33.7 } //方式1 bson::bo a = bson::bob().append("name", "joe").append("age", 33.7).obj(); //方式2 bson::bob x; x.append
在TreeView中提取他的ID
请问怎样TreeView中提取他的ID,ID是隐形的
如何获得winform 控件id或者如何唯一标识每个控件
目前做到的地方:用VC已经可以遍历整个winform程序的控件,rn1. FindWindow 来得到窗口句柄。rn2. 用EnumChildsWindow来获得窗口上的控件句柄rn3. 然后再用SendMessage来给控件发送相应的数据。rnrn-----------------------------rn目前的问题:rn 1. 因为winform窗体上有很多控件,无法唯一标识,用spy++查看contol id发现不是唯一的,每次重新启动软件都会变化。rn 所以就无法区分哪个edit控件对应哪个字段,rn 2. 现在发现用EnumChildsWindow来遍历控件发现取得的控件不是按Tab的顺序来的,所以这种方式也无法区分每个edit。rnrn急求解决方案。。。。。。。。
怎么提取链接中的id?
做网页的时候,想在同一个页内用锚链接中的id来分别点击后来显示数据库内容.但是不知道怎么提取那个id的数值. rn比如: rnDo while not rs.eof and i<10 rni=i+1 rnif i>=1 then rnresponse.write ("") rnresponse.write ("" & rs("考号") & "") rnresponse.write ("" & rs("姓名") & "") rnresponse.write ("") rnend if rnrs.movenext rnLoop rnrn这个id的提取..直接让href='#?id=id2,会在循环时直接出现真值.. rnrnrequest.querystring("id") 在锚标记中提取不到.只提取url的.. rnrn如果让id等于一个值,然后用保留的id值做为显示数据的依据,如果用语言,该怎么弄?怎么写?? rnrn求高手指教..rn
Mongo中Bson文件的数据恢复
因项目需要,在Ubuntu系统中配置了mongodb副本集用于存储在线爬虫的结果,这两天无意强制关机导致其中一个shard3分片处于rollback状态,重启mongodb之后一部分数据缺失,网上没有合适的方法,只能人工恢复了。      因为副本集的方式还没有特别熟悉,所以现在本地将数据存到mongo里面然后再上传的,以下是解决问题步骤:      1、将rollback数据导出来,放到f:
Linux下如何提取硬盘序列号
请问在linux下如何提取SAS类型的硬盘序列号,并且做了RAIDO
bson jar包
bson jar包
python如何打开bson文件
import bson bson_file = open('test.bson','rb') bson_data = bson.loads(bson_file.read())
BSON结构
BSON结构 flyfish 2015-7-24 主要解释bsonspec.org网站上的两个例子 {"hello": "world"}  hello为key,world为value 对应的是   \x16\x00\x00\x00                      \x02                                 
怎样产生一个全局唯一标识ID?
mongodb数据库结构提取
各位大神,我想把MongoDB的数据库结构提取出来,有什么方法实现啊?
mongodb高频词汇提取
1、mongodb能不能提取所有文档中词汇出现的次数,也就是提取词汇的高频度?rn2、如果不能直接提取,有没有一种办法将分完词的key中的文本中的词汇,[color=#FF0000]分别提取[/color]出来各自作为[color=#FF0000]单独的[/color]key?rn[color=#FF0000]例如:[/color]rn原始数据:text:回家的感觉就是好,有你陪着我,再热都不觉得心情烦躁,哈哈,你也开心吧。rn分词后数据:回家/POS_D_V/的/POS_D_U/感觉/POS_D_N/就是/POS_D_C/好/POS_D_A/有/POS_D_V/你/POS_D_R/陪着/POS_UNK/我/POS_D_R/再热都不/POS_UNK/觉得(POS_D_V指的是词性)。rn想要得到:key1:回家rn key2:感觉rn ...........rn keyN:觉得
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview