我使用C語言編寫了以下用於使用C mongodb驅動程序的代碼。如何使用Mongodb C驅動程序獲取mongodb數組中元素的數量?
else if (0 == strcmp(key, "Records")){
printf("-------------Records-------------\n");
if (BSON_ITER_HOLDS_ARRAY(&iter)) {
bson_iter_array(&iter, &array_len,&array);
bson_iter_recurse(&iter, &child);
while (bson_iter_next(&child)) {
key = bson_iter_key(&child);
if (BSON_ITER_HOLDS_DOCUMENT(&child)){
ReadRecords(&child);
}
}
}
}
基本上我試圖從mongodb讀取文件。 docuemnt的結構是這樣的快照:http://1drv.ms/1BAXAOx
但是對於我的api pupose我想知道數組的大小,然後開始迭代通過每個元素並以我的格式使用它。
正如你可以看到我已經試過bson_iter_array(& ITER,& array_len,&陣列);但是我認爲這不是我想要的。這裏是它的文檔http://api.mongodb.org/libbson/current/bson_iter_array.html。其中array_len實際上是「緩衝區長度的位置」。
那麼有人可以幫助如何獲取MongoDB數組的迭代通過文件時的數組數量。
由於
您是否找到答案?我也有同樣的問題。我所能想到的是迭代一次通過文檔來計算元素並第二次處理它們。我猜bson格式不包括數組數,所以這是內部無論如何都需要發生的事情。 – user1055568
嗨,是的,你是對的,我們必須循環它。只是我的意見C驅動程序是醜陋的,特別是如果你曾與C#驅動程序工作。我回到了C#驅動程序,因爲我沒有發現任何主要的性能增益。 – Sherry