mongodb :: NativeMongoDb :: defaultinit
# Wrapper for `mongoc_database_t`.
#
# `mongoc_database_t` provides access to a MongoDB database.
# This handle is useful for actions a particular database object.
# It is not a container for `mongoc_collection_t` structures.
#
# See [`mongoc_database_t`](http://api.mongodb.org/c/current/mongoc_database_t.html).
extern class NativeMongoDb `{ mongoc_database_t * `}
# Wrapper for `mongoc_client_get_database()`.
#
# Get a newly allocated `mongoc_database_t` for the database named name.
#
# Database are automatically created on the MongoDB server upon insertion of
# the first document into a collection.
# There is no need to create a database manually.
new(client: NativeMongoClient, db_name: CString) `{
return mongoc_client_get_database(client, db_name);
`}
# Wrapper for `mongoc_database_get_collection_names()`.
#
# Fetches a `NULL` terminated array of `NULL-byte` terminated `char*` strings
# containing the names of all of the collections in database.
fun collection_names: nullable NativeCStringArray
import set_mongoc_error, NativeCStringArray, NativeCStringArray.as nullable `{
bson_error_t error;
char **strv;
if((strv = mongoc_database_get_collection_names(self, &error))) {
return NativeCStringArray_as_nullable(strv);
}
NativeMongoDb_set_mongoc_error(self, &error);
return null_NativeCStringArray();
`}
# Wrapper for `mongoc_database_get_collection()`.
#
# Allocates a new `mongoc_collection_t` structure for the collection named
# `name` in database.
fun collection(name: CString): NativeMongoCollection `{
return mongoc_database_get_collection(self, name);
`}
# Wrapper for `mongoc_database_has_collection()`.
#
# This function checks to see if a collection exists on the MongoDB server
# within database.
fun has_collection(name: CString): Bool import set_mongoc_error `{
bson_error_t error;
if(!mongoc_database_has_collection(self, name, &error)) {
NativeMongoDb_set_mongoc_error(self, &error);
return false;
}
return true;
`}
# Wrapper for `mongoc_database_drop()`.
#
# This function attempts to drop a database on the MongoDB server.
fun drop: Bool import set_mongoc_error `{
bson_error_t error;
if(!mongoc_database_drop(self, &error)) {
NativeMongoDb_set_mongoc_error(self, &error);
return false;
}
return true;
`}
# Wrapper for `mongoc_database_destroy()`.
#
# This instance should not be used beyond this point!
fun destroy `{ mongoc_database_destroy(self); `}
# Utility method to set `Sys.last_mongoc_error`.
fun set_mongoc_error(err: BSONError) do sys.last_mongoc_error = err
end
lib/mongodb/native_mongodb.nit:216,1--291,3