这是我的收藏的结构部分:
{
_id: {
id:"6a6ca923517f304900badd98",
target:"00badd6a6ca923517f304998e4df"
},
...
}
使用:
if(bson_find(iterator, mongo_cursor_bson(cursor), "_id")){
bson_iterator_subiterator(iterator, sub);
id = (char*)bson_iterator_string(sub);
}
是“正在工作”但实际上只是返回我找到的数组的第一个字段的结果... 如何准确恢复“id”或“target”字段的值?
答案 0 :(得分:1)
您还可以在子迭代器上使用bson_iterator_more
和bson_iterator_next
(它仍然是迭代器)。
试试这个:
if(bson_find(iterator, mongo_cursor_bson(cursor), "_id"))
{
bson_iterator_subiterator(iterator, sub);
while(bson_iterator_more(sub))
{
if (bson_iterator_next(sub) != BSON_EOO)
{
printf("%s: %s\n", bson_iterator_key(sub), bson_iterator_string(sub));
}
}
}