Docs Menu
Docs Home
/ /

Comienza con el controlador C

El driver C de MongoDB es una librería C que se puede usar para conectarse a MongoDB e interactuar con datos almacenados en su implementación. Esta guía muestra cómo crear una aplicación que use el driver C para conectarse a un clúster de MongoDB alojado en MongoDB Atlas y query datos en su clúster.

Tip

MongoDB Atlas es un servicio de base de datos gestionada en la nube que aloja las implementaciones de MongoDB. Se puede crear una implementación propia gratuita de MongoDB Atlas (sin necesidad de tarjeta de crédito) siguiendo los pasos de esta guía.

Siga esta guía para conectar una aplicación C de ejemplo a una implementación de MongoDB Atlas. Si prefiere conectarse a MongoDB con un controlador o lenguaje de programación diferente, consulte nuestra Lista de conductores oficiales.

El controlador C consta de dos bibliotecas: libbson y libmongoc. En esta guía, aprenderá a instalar libmongoc, que viene incluido con libbson.

Puede instalar el controlador C mediante un gestor de paquetes o instalando las bibliotecas desde el código fuente. Las distintas distribuciones de Linux instalan distintas versiones del controlador con un gestor de paquetes. Por ello, le recomendamos comprobar la versión que incluye su distribución antes de instalar el controlador.

En las distribuciones de RedHat Enterprise Linux (RHEL), puede comprobar la versión ejecutando el siguiente comando en su shell:

sudo dnf info mongo-c-driver-devel

En las distribuciones basadas en Debian, puedes comprobar la versión ejecutando el siguiente comando en tu shell:

apt-cache policy libmongoc-dev

Si la versión del controlador disponible no es la que desea, puede instalarlo desde el código fuente. Para saber cómo instalarlo, consulte Instalación personalizada: guía para crear las bibliotecas del controlador C desde la fuente.

Para saber cómo instalar el controlador mediante un administrador de paquetes, seleccione la pestaña correspondiente a su sistema operativo:

Puede instalar el controlador en distribuciones de RedHat Enterprise Linux (RHEL), versión 7 o posterior, o distribuciones basadas en RHEL, como:

Antes de instalar el controlador en una distribución RHEL, excepto Fedora, debe habilitar el repositorio de Paquetes Extra para Enterprise Linux (EPEL). Puede habilitar el repositorio EPEL instalando el paquete epel-release, como se muestra en el siguiente ejemplo:

yum install epel-release

Luego, puede instalar el controlador C usando yum. Para ello, ejecute el siguiente comando en su shell:

yum install mongo-c-driver-devel

Nota

Paquetes para desarrolladores

El ejemplo de código anterior instala los paquetes de desarrollo necesarios para crear aplicaciones que usan el controlador C. Para instalar solo las bibliotecas, sin los archivos de desarrollo, ejecute el siguiente comando:

yum install mongo-c-driver

Si está instalando en una distribución RHEL de la versión 8 o posterior, le recomendamos ejecutar los ejemplos de código anteriores utilizando dnf en lugar de yum.

Si está utilizando Fedora o una distribución Linux empresarial de la versión 8 o posterior, puede instalar el controlador utilizando los mismos comandos que se muestran en el ejemplo anterior y yum reemplazando dnf con.

El siguiente ejemplo muestra cómo instalar el controlador C en una distribución de Fedora:

dnf install mongo-c-driver-devel

En distribuciones de Linux basadas en Debian, incluyendo Ubuntu y sus derivados, las bibliotecas de controladores están disponibles a través de la Herramienta de Empaquetado Avanzado (APT). Puede instalar el controlador con APT ejecutando el siguiente comando en su shell:

apt install libmongoc-dev

El ejemplo de código anterior instala los paquetes de desarrollo necesarios para crear aplicaciones que usan el controlador C. Para instalar solo las bibliotecas, sin los archivos de desarrollo, ejecute el siguiente comando:

apt install libmongoc-1.0-0

Para entornos Windows, recomendamos construir las librerías del driver C desde el código fuente para garantizar la máxima compatibilidad con la cadena de herramientas local. Puedes automatizar la construcción desde el código fuente usando una herramienta de gestión de paquetes de librerías "from-source", como vcpkg.

Tip

Para saber cómo comenzar a utilizar vcpkg, consulte la guía Introducción a vcpkg en la documentación de Microsoft.

En el modo de manifiesto vcpkg, agregue la biblioteca del controlador al archivo de manifiesto de su vcpkg.json proyecto, como se muestra en el siguiente ejemplo:

{
// ...
"dependencies": [
// ...
"mongo-c-driver"
]
}

Cuando crea un proyecto CMake con integración vcpkg y tiene un archivo de manifiesto vcpkg.json, vcpkg instala automáticamente las dependencias del proyecto antes de continuar con la configuración.

Si está utilizando el modo clásico de vcpkg, puede instalar el controlador ejecutando el siguiente comando en su shell:

vcpkg install mongo-c-driver

Después de instalar el controlador, el archivo de configuración estándar de CMake y los destinos IMPORTED generados estarán disponibles.

Para configurar el proyecto CMake con la integración de vcpkg, configure el archivo de cadena de herramientas de CMake en el comando de configuración ejecutando los siguientes comandos en su shell:

cmake -S . -B _build -D
CMAKE_TOOLCHAIN_FILE=$VCPKG_ROOT/scripts/buildsystems/vcpkg.cmake

Se puede utilizar el administrador de paquetes Homebrew para instalar el driver C en macOS. Para hacerlo, ejecute el siguiente comando en su shell:

brew install mongo-c-driver

Después de completar estos pasos, tendrá el controlador C instalado en su máquina.

Se puede crear una implementación de nivel gratuito de MongoDB en MongoDB Atlas para almacenar y gestionar los datos. MongoDB Atlas aloja y gestiona la base de datos MongoDB en la nube.

1

Completa la Guía de inicio de MongoDB para configurar una nueva cuenta de Atlas y cargar datos de muestra en una nueva implementación de MongoDB de nivel gratuito.

2

Después de crear un usuario de base de datos, guardar el nombre de usuario y la contraseña de ese usuario en una ubicación segura para usarlos en un paso próximo.

Después de completar estos pasos, habrá una nueva implementación de nivel gratuito de MongoDB en Atlas, credenciales de usuario de base de datos y datos de muestra cargados en la base de datos.

Puede conectarse a su implementación de MongoDB proporcionando un URI de conexión, también llamado cadena de conexión, que instruye al controlador sobre cómo conectarse a una implementación de MongoDB y cómo comportarse mientras está conectado.

La cadena de conexión incluye el nombre de host o la dirección IP y el puerto de la implementación, el mecanismo de autenticación, las credenciales de usuario cuando sea aplicable, y las opciones de conexión.

Para conectarse con una instancia o implementación que no esté alojada en Atlas, se puede consultar la guía Elegir un destino de conexión.

1

Para recuperar su cadena de conexión para la implementación que creó en el paso anterior, inicie sesión en su cuenta de Atlas y navegue hasta la Clusters Página en la sección Database. Haga clic en el botón Connect para su nueva implementación.

El botón de conexión en la sección de clústeres de la interfaz de usuario de Atlas

Si aún no tienes un usuario de base de datos configurado, MongoDB te pedirá que crees y configures un nuevo usuario.

Haga clic en el botón Drivers en la sección Connect to your application y seleccione "C" en el menú de selección Driver y la versión que mejor coincida con la versión que instaló en el menú de selección Version.

Asegúrate de que la opción View full code sample esté desmarcada para ver solo la cadena de conexión.

2

Haz clic en el botón a la derecha de la cadena de conexión para copiarla en el portapapeles, como se muestra en la siguiente captura de pantalla:

El botón de copia junto a la cadena de conexión en la interfaz de usuario de Atlas
3

Pega esta cadena de conexión en un archivo en tu editor de texto preferido y reemplaza el marcador de posición <db_password> con la contraseña de tu usuario de base de datos. La cadena de conexión ya está completada con el nombre de usuario de tu usuario de base de datos.

Guarda este archivo en una ubicación segura para usarlo en el siguiente paso.

Tras completar estos pasos, hay una cadena de conexión que corresponde al clúster de Atlas.

Puede crear una aplicación que se conecte a su implementación de MongoDB y recupere datos de la colección movies en la base de datos sample_mflix.

Para obtener más información sobre la sample_mflix base de datos, consulte el conjunto de datos de muestra de Mflix en la documentación de Atlas.

1

En su shell, navegue hasta donde desea crear su aplicación, luego ejecute el siguiente comando para crear un directorio llamado c-quickstart para este proyecto:

mkdir c-quickstart

Seleccione la pestaña correspondiente a su sistema operativo y ejecute los siguientes comandos para crear un archivo de aplicación quickstart.c en el directorio c-quickstart:

cd c-quickstart
touch quickstart.c
cd c-quickstart
type nul > quickstart.c
2

Copie y pegue el siguiente código en el archivo quickstart.c, que hace un query en la colección movies en la base de datos sample_mflix:

#include <bson/bson.h>
#include <mongoc/mongoc.h>
#include <stdio.h>
int
main(void)
{
const bson_t *doc;
mongoc_init();
mongoc_client_t *client = mongoc_client_new("<connection string>");
mongoc_collection_t *collection = mongoc_client_get_collection(client, "sample_mflix", "movies");
// Specify the query filter
bson_t *query = BCON_NEW("title", "The Shawshank Redemption");
mongoc_cursor_t *results = mongoc_collection_find_with_opts(collection, query, NULL, NULL);
// Print the results
while (mongoc_cursor_next(results, &doc))
{
char* str = bson_as_canonical_extended_json(doc, NULL);
printf("%s\n", str);
bson_free(str);
}
bson_destroy(query);
mongoc_cursor_destroy(results);
mongoc_collection_destroy(collection);
mongoc_client_destroy(client);
mongoc_cleanup();
return EXIT_SUCCESS;
}
3

Reemplaza el marcador de posición <connection string> con la cadena de conexión que se copió del paso Crear una cadena de conexión de esta guía.

4

Para configurar su aplicación, cree un archivo CMakeLists.txt en el directorio de su proyecto. A continuación, añada el siguiente código al archivo:

cmake_minimum_required(VERSION 3.11)
project(c-quickstart LANGUAGES C)
add_executable (quickstart.out quickstart.c)
find_package(mongoc <version> REQUIRED)
target_link_libraries(quickstart.out mongoc::mongoc)

El código precedente realiza las siguientes acciones:

  • Configura un proyecto de C.

  • Crea un ejecutable quickstart.out para la aplicación.

  • Busca y requiere el controlador C. Reemplace el marcador de posición <version> con el número de versión de su controlador C, como 2.2.2.

  • Vincula el programa a la biblioteca libmongoc.

Nota

En el archivo de muestra CMakeLists.txt, el objetivo mongoc::mongoc apunta a la biblioteca estática o a la biblioteca compartida. El tipo de biblioteca depende de cuál esté disponible y del tipo que el usuario especifique en la configuración de MONGOC_DEFAULT_IMPORTED_LIBRARY_TYPE CMake. Si no establece este valor y ambos tipos de biblioteca están disponibles, mongoc::mongoc utiliza la biblioteca estática.

Puedes usar el destino mongoc::static para usar explícitamente la biblioteca estática o el destino mongoc::shared para usar la biblioteca compartida.

5

En su shell, ejecute los siguientes comandos para compilar y ejecutar esta aplicación:

cmake -S. -Bcmake-build
cmake --build cmake-build --target quickstart.out
./cmake-build/quickstart.out

La salida de la línea de comandos contiene detalles sobre el documento de película recuperado:

{ "_id" : { "$oid" : "..." },
"plot" : "Two imprisoned men bond over a number of years, finding solace
and eventual redemption through acts of common decency.",
...
"title" : "The Shawshank Redemption",
...

Si encuentras un error o no ves ninguna salida, asegúrate de haber especificado la cadena de conexión correcta en el archivo quickstart.c y de haber cargado los datos de muestra.

Después de completar estos pasos, habrá una aplicación en funcionamiento que utiliza el driver para conectarse a la implementación de MongoDB, ejecuta una query sobre los datos de muestra e imprime el resultado.

¡Felicidades por completar el tutorial de inicio rápido!

Nota

Si hay problemas en este paso, se deben enviar comentarios utilizando la pestaña Rate this page situada a la derecha o en la parte inferior derecha de esta página.

Puede encontrar soporte para preguntas generales mediante la etiqueta Stack Overflow de MongoDB o la comunidad de Reddit de MongoDB.

En este tutorial, creó una aplicación C que se conecta a una implementación de MongoDB alojada en MongoDB Atlas y recupera un documento que coincide con una consulta.

Obtenga más información sobre el controlador C en los siguientes recursos:

  • Se puede obtener información sobre cómo realizar operaciones de lectura en la sección Leer Datos.

  • Aprenda a realizar operaciones de escritura en la sección Insertar documentos.

Volver

Controlador C asíncrono: versión preliminar pública