mongodb c driver使用经验

发布时间 2023-06-07 15:00:20作者: 秋来叶黄

连接数据库

获取mongoc_cursor_t* cursor

循环获取数据,存入bson_t

const bson_t *doc = nullptr;
while (mongoc_cursor_next(cursor, &doc))

获取迭代器

上面只是获取了对应的文本,需要设置成迭代器才能使用

bson_iter_t iter;
if (bson_iter_init(&iter, doc))

bson_iter_init的作用就是把doc(bson_t)的内容转成iter(bson_iter_t)

查询key是否存在

if (bson_iter_find(&iter, "xxx"))

查询的时候需要注意,一是必须按照存在mongo数据库中的顺序,如果顺序颠倒,后续会查询失败,也就是说当前索引不能回退,比如abc,如果你先查b是可以的,再查a就会报错,如果不查a,继续查c也是可以的;二是如果bson_iter_find返回了false,不管是查询顺序颠倒,还是查询了不存在的key,iter都会失效,无法再使用,需要重新初始化。