void core::concatenate(const bsoncxx::document::view& view) { bson_t other; bson_init_static(&other, view.data(), view.length()); if (_impl->is_array()) { bson_iter_t iter; bson_iter_init(&iter, &other); while (bson_iter_next(&iter)) { stdx::string_view key = _impl->next_key(); bson_append_iter(_impl->back(), key.data(), key.length(), &iter); } } else { bson_concat(_impl->back(), &other); } }
static void doc_to_bson_t(const bsoncxx::document::view& doc, bson_t* bson) { bson_init_static(bson, doc.data(), doc.length()); }