SEXP R_mongo_collection_new(SEXP ptr_client, SEXP collection, SEXP db) { mongoc_client_t *client = r2client(ptr_client); mongoc_collection_t *col = mongoc_client_get_collection (client, translateCharUTF8(asChar(db)), translateCharUTF8(asChar(collection))); SEXP out = PROTECT(col2r(col)); setAttrib(out, install("client"), ptr_client); UNPROTECT(1); return out; }
SEXP R_mongo_client_server_status(SEXP ptr_client) { bson_t reply; bson_error_t err; mongoc_client_t *client = r2client(ptr_client); if(!mongoc_client_get_server_status(client, NULL, &reply, &err)) stop(err.message); return bson2list(&reply); }
SEXP R_mongo_get_default_database(SEXP ptr_client) { mongoc_client_t *client = r2client(ptr_client); mongoc_database_t *db = mongoc_client_get_default_database(client); if(db){ return mkString(mongoc_database_get_name(db)); } else { return R_NilValue; } }
SEXP R_mongo_get_default_database(SEXP ptr_client) { mongoc_client_t *client = r2client(ptr_client); mongoc_database_t *db = mongoc_client_get_default_database(client); if(db){ SEXP out = PROTECT(Rf_mkString(mongoc_database_get_name(db))); mongoc_database_destroy(db); UNPROTECT(1); return out; } else { return R_NilValue; } }
SEXP R_mongo_collection_new(SEXP ptr_client, SEXP collection, SEXP db) { mongoc_client_t *client = r2client(ptr_client); mongoc_collection_t *col = mongoc_client_get_collection (client, Rf_translateCharUTF8(Rf_asChar(db)), Rf_translateCharUTF8(Rf_asChar(collection))); return col2r(col, ptr_client); }