https://github.com/joanbr4/mongo-docker
Some Queries with mongo and with docker
https://github.com/joanbr4/mongo-docker
docker mongodb
Last synced: about 2 months ago
JSON representation
Some Queries with mongo and with docker
- Host: GitHub
- URL: https://github.com/joanbr4/mongo-docker
- Owner: joanbr4
- Created: 2024-02-22T09:52:41.000Z (about 1 year ago)
- Default Branch: master
- Last Pushed: 2024-02-23T17:26:45.000Z (about 1 year ago)
- Last Synced: 2025-02-07T09:20:23.669Z (3 months ago)
- Topics: docker, mongodb
- Language: TypeScript
- Homepage:
- Size: 192 KB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# MongoDB
Todos los comandos posibles:
`npm run mongo` Ejecuta las consulta noSQL de mongoose.
`npm run eslint` Ejecuta eslint.
Se ha utilizado dos métodos de trabajo para apreciar la facilidad de cada uno, consulta con la configuarcion en local/linea de mongoDB y el uso de imagenes preconfiguradas de Docker.
## Estructura de MongoDB
MongoDb es una base de datos noSQL( no relacional), que permite almacenar los datos de manera muy dinámica como si objetos fuesen mediante colleciones y los datos, llamados documentos.
En este ejercicios, hemos utilizado mongoose, un ODM, de MongoDB que nos permite mediantes sus métodos acceder de manera sencilla a MongoDB.
⚠️ Tener la url de conexion, yo puse la propia de un cluster de mongoDBAtlas, se puede utilizar la de localhost que te de MongoDb Compass. ⚠️
Mediante la siguiente foto, tenemos que crear las posibles datos que pudiera haber:

## Docker
Por que utilizar docker? Docker es una plataforma de código abierto que nos permitirá ejecutar una app, en nuestro caso hacer consulta a MongoDB sin tener que instalar ni MongoDB, lo conseguiremos mediante imágenes y contenedores.
⚠️ Tener Docker Desktop instalado y configurado ⚠️
Guarda la imagen que contiene la config de mongo y desde donde nos conectaremos:
```sh
docker pull mongo:6-jammy
```Con la palabra `pull` bajamos la imagen que contiene la aplicación y configuración de mongoDb y su versión 6-jammy, ahora toca configurar lo más importante, el `docker-compose.yml`, que nos dirá la configuración de los contenedores y su relación:
```yml
version: "3.8"services:
node-app:
build: .
image: hola:latest
environment:
- MONGODB_DOCKER=mongodb://mongodb:27017/node-boilerplate
ports:
- "8085:8085"
depends_on:
- mongodb
volumes:
- .:/src
networks:
- node-networkmongodb:
image: mongo:6-jammy
ports:
- "27017:27017"
volumes:
- dbdata6:/data/db
networks:
- node-networkvolumes:
dbdata6:networks:
node-network:
driver: bridge
```Comando para arrancar nuestras imagenes en diferentes contenedores y que queden conectados:
```sh
docker compose up
```Para salir de la ejecución `ctrl + C`
La magia radica en que la ruta está guardada una en el file .env y el otro en el docker-compose.yml que solo existirá cuando se ejecute el compose, asi, si ejecutamos ejecutamos el archivo `mongoose.ts`, solo detectará las variables de entorno del .env:

El resultado de uno o el otro no cambiará, pues ambos utilizan mongoDB con mongoose, pero con Docker siempre tendremos el mismo entorno de desarrollo escrito en el `compose.yml` y siempre de manera virtual, sin importar las características locales e individuales.
