我,和回答的人是对的,是bson_append_binary
。
正在做,
int array[] = {10,11,12};
int *array_ptr = array;
...
bson_append_binary(&b, "fld", BSON_BIN_USER, (char*)array_ptr, sizeof(array));
...
然后,我能够从 mongo 中读取数组:
...
if ( bson_find( iterator, mongo_cursor_bson( cursor ), "fld" )) {
array_ptr = (int*)bson_iterator_bin_data(iterator);
printf(" first element: %i\n", *(array_ptr++));
printf("second element: %i\n", *(array_ptr++));
printf(" third element: %i\n", *array_ptr);
}
...
看起来很简单,但因为我的 C 很糟糕,我花了好几个小时。下一个挑战是弄清楚如何从另一个(例如 PHP)客户端读取二进制文件。感谢帮助过的人!