Thanks to Joe for his comment: use numKeys = bson_num_keys(bsonArray) to get the number of keys (entries), and use bson_append_document(bsonArray, "numKeys", -1, bsonObj)