javascript

Ejemplo simple de conexión a MongoDB con Mongoose

En este post te mostraré cómo crear un modelo de Mongoose para guardarlo en una base de datos de MongoDB. Además, te mostraré cómo hacer las cuatro operaciones fundamentales.

Será un ejemplo muy simple para comenzar a usar esta librería que permite definir modelos que más adelante vamos a insertar, actualizar, listar o eliminar de una base de datos de MongoDB.

Nota: aquí asumo que ya tienes un poco de conocimiento con node para ejecutar un archivo de JavaScript, iniciar el servidor, etcétera.

Instalando mongoose

En este caso mongoose es una librería de Node que puedes usar con cualquier tecnología que uses en ese servidor, por ejemplo, express.

Para instalarlo usa npm con:

npm install --save mongoose

Conexión con MongoDB

Recomiendo tener la conexión a la base de datos en un archivo separado, y en cada uno de nuestros modelos simplemente incluirla. Entonces la conexión queda así:

See the gist on github.

Fíjate en que me estoy conectando a la base de datos llamada videojuegos. Si tú usas usuario y contraseña para acceder, usa algo como lo siguiente:

See the gist on github.

En este caso especificamos el usuario y la contraseña en las opciones de conexión. También especificamos la fuente de autenticación que indica la base de datos en donde has creado tu usuario. Normalmente es admin.

Modelo

Ejemplo de modelo en Mongoose para conectar con MongoDB

Ahora que tenemos la conexión vamos a crear un modelo. Mi clase se llama Videojuego, pero también el nombre de la colección. Este último nombre es importante pues así se llamará la colección en la base de datos.

Después vemos las propiedades del modelo. El id será agregado automáticamente, así que no lo estoy especificando. Lo que sí estoy especificando es el nombre, precio y calificación.

En este caso el nombre es de tipo cadena y es requerido. Aquí estamos declarando tipos de datos y validaciones. Para el caso del precio y calificación también estamos indicando el valor mínimo con min.

See the gist on github.

Presta atención a cómo se está importando la conexión. En este caso tengo mi modelo dentro de la carpeta llamada modelos, y mi conexión es hermana de esa carpeta. Por eso es que la importo (línea 1) con ../conexion_mongo (la extensión js no es necesaria).

Si por ejemplo mi modelo y conexión residieran en la misma ubicación, la importaría con ./conexion_mongo. Básicamente es importar desde un directorio.

Ahora vamos a importar nuestro modelo desde cualquier lugar que vayamos a hacer operaciones con el mismo con:

See the gist on github.

De nuevo, en este caso es porque estoy dentro de un directorio que no es hermano de modelos, por eso es que uso ../. En caso de que tu modelo esté en otra ubicación simplemente cámbiala como debe ser.

Una nota sobre async, await y promesas

En los ejemplos que te muestro usaré async y await porque he declarado mis funciones como asíncronas. En caso de que tú no lo entiendas o no hayas declarado funciones asíncronas, simplemente cambia el await:

See the gist on github.

Por un then:

See the gist on github.

Esto no tiene que ver con mongoose. Solo es la diferencia entre usar promesas o async y await en JavaScript. Si me preguntas, yo prefiero lo del primer ejemplo.

CRUD con Mongoose

Al fin llegamos al código. Vamos a ver las 4 operaciones.

Cuando quieres hacer un nuevo registro creas una nueva instancia de tu modelo e invocas al método save. En este caso estoy definiendo las propiedades manualmente, pero pueden venir de cualquier lugar.

See the gist on github.

Cuando quieres obtener todos los registros, invoca al método find:

See the gist on github.

Si quieres obtener un registro por id, invoca a findById:

See the gist on github.

En el caso de actualizar un registro por id puedes usar a findOneAndUpdate:

See the gist on github.

Fíjate en que el id en este caso está especificado como _id. Y finalmente para eliminar un registro a partir del ID puedes usar findOneAndDelete:

See the gist on github.

Con esto terminamos las 4 operaciones para interactuar con una base de datos de MongoDB usando Mongoose.

Muy pronto te traeré más ejemplos y proyectos sobre estas tecnologías, mientras tanto te dejo la documentación oficial y más ejemplos de código con JavaScript o MongoDB.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

5 días hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

5 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

6 días hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.