collection::collection(const database& database, bsoncxx::string::view_or_value collection_name) : _impl(stdx::make_unique<impl>( libmongoc::database_get_collection(database._get_impl().database_t, collection_name.terminated().data()), database.name(), database._get_impl().client_impl)) {}
collection::collection(const database& database, void* collection) : _impl(stdx::make_unique<impl>(static_cast<mongoc_collection_t*>(collection), database.name(), database._get_impl().client_impl)) {}
collection::collection(const database& database, stdx::string_view collection_name) : _impl(stdx::make_unique<impl>( libmongoc::database_get_collection(database._get_impl().database_t, collection_name.data()), database.name(), database._get_impl().client_impl)) { }