Bases de datos no relacionales (No SQL): MongoDB
Son un grupo de bases de datos que no usan relaciones como las bases de datos SQL, sino que se hacen las consultas a través de JavaScript. Las bases de datos No SQL son Schema-less, es decir, no hay definición de estructura de datos, los datos pueden ser grabados arbitrariamente y la definición de la estructura de datos se realiza en la creación de registros.
Si se necesitan almacenar los
datos de forma muy consistente (por ejemplo, cuando se habla de transacciones
bancarias), las bases No SQL no son la mejor opción, sin embargo; para otros
desarrollos están tienen ventajas puesto que las consultas se pueden hacer más
rápido, es más flexible y están optimizadas para la gestión de grandes
cantidades de datos.
Tipos de bases de datos no relacionales
- Clave-valor
- Documentos
- Grafos
- Column family
- En memoria
- Cualquier tipo de almacenamiento que no utilice relaciones para mantener la consistencia de los datos
Una de las tecnologías No SQL es MongoDB
que es un tipo de base No SQL de tipo documental.
Bases de datos documentales
MongoDB
Es una base de datos documental gratuita y de código abierto, es multiplataforma y los datos se guardan como BSON (Binary JSON).Para instalar MongoDB se sigue el siguiente manual: Instalación MongoDb
También se debe instalar la nueva
Shell de mongo mongosh.
Shell de MongoDB
En consola se arranca el servidor
de MongoDb con el siguiente comando:
mongod
Para detener el servicio se da:
Ctrl c
Una vez iniciado el servicio de
MongoDB, en otra consola se entra a la Shell de mongo con el siguiente comando:
mongosh
Hay varios comandos útiles para usar la Shell de Mongo:
Leer:
- db.nombeColeccion.find(): Para mostrar la información de un objeto en específico.
- show nombreBaseDeDatos: Para listar la base de datos.
- show collections: para mostrar las colecciones.
- use nombreBaseDeDatos: para crear una base de datos.
- db.createCollection(“nombreColección”): Para crear una colección.
- db.nombreColeccion.insertOne(): Para agregar un objeto dentro de la colección.
- db.nombreColeccion.insertMany([ ]): Se agrega una lista de objetos.
db.nombreColeccion.updateOne(): Actualiza sobre el primer registro que encuentra.
- db.nombreColeccion.updateMany({ filtroUpdate: valor }, { $set: {filtroUpdate: nuevoValor} }): Actualiza un parámetro (filtro) con un valor determinado por un nuevo valor.
- db.nombreColeccion.replaceOne( {filtroReplace: valor}, {parametroRemplazar: valor} ): Reemplaza los parámetros del primer objeto que encuentre que cumpla con la condición del filtro.
- db.dropDatabase(): para eliminar una base de datos.
- db.nombreColeccion.drop(): para eliminar una colección.
- db.nombreColeccion.deleteOne( {filtroDelete: valor} ): Elimina el primer parámetro que cumpla con el valor del filtro.
- db.nombreColeccion.deleteMany( {filtroDelete: valor} ): Elimina todos los parámetros que cumplan con el valor del filtro.
Ejemplo: Se crea un objeto users dentro de la colección movies.
mongosh
use movies
db.users.insertOne({ _id: 1, firstName:
"Andres", lastName: "Castillo" })
db.users.find({_id: 0, firstName:
1, lastName: 1})
//Se cambia el apellido del
usuario
db.users.replaceOne( {firstName: “Andres”},
{ lastName: “Gaviria”} )
Documentos embebidos y documentos referenciados
Finalmente, MongoDB permite organizar los documentos como documentos embebidos y documentos referenciados.
- Documentos embebidos: Pueden existir documentos dentro de otros documentos, facilita consultar e indexar, así como mejorar los tiempos de respuesta, sin embargo; aumenta la duplicidad de los datos.
- Documentos referenciados: MongoDB permite crear referencias a documentos dentro de otros documentos. No es una relación es una referencia. Esto disminuye la duplicidad de los datos y habilita la consistencia de los datos. Sin embargo; aumenta los tiempos de respuesta.
Comentarios
Publicar un comentario