apuntes:mongodb
Diferencias
Muestra las diferencias entre dos versiones de la página.
apuntes:mongodb [2019/02/02 22:50] – [Operaciones básicas] fernando | apuntes:mongodb [2024/09/16 16:03] (actual) – editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 2: | Línea 2: | ||
===== Introducción a las Bases de Datos NoSQL ===== | ===== Introducción a las Bases de Datos NoSQL ===== | ||
- | Los sistemas | + | Con el potente crecimiento |
- | Pero con el potente crecimiento | + | Viendo que los tradicionales SGBD Relacionales emplean demasiado tiempo en controlar la consistencia |
- | Viendo que los tradicionales SGBD Relacionales empleaban demasiado tiempo en controlar la consistencia | + | Se caracterizan por no emplear SQL como lenguaje principal |
+ | * bbdd clave-valor | ||
+ | * bbdd de Documentos | ||
+ | * bbdd orientadas a objetos | ||
+ | * bbdd en grafo | ||
===== MongoDB ===== | ===== MongoDB ===== | ||
==== ¿Qué es MongoDB? ==== | ==== ¿Qué es MongoDB? ==== | ||
- | [[http:// | + | [[http:// |
La principal diferencia con los tradicionales sistemas relacionales, | La principal diferencia con los tradicionales sistemas relacionales, | ||
==== Estructura de una Base de Datos ==== | ==== Estructura de una Base de Datos ==== | ||
- | Como se ha comentado, //MongoDB// almacena la información y forma el esquema de la base de datos mediante el uso de documentos //BSON// (Binary JSON), tal y como se muestra en la siguiente | + | Como se ha comentado, //MongoDB// almacena la información y forma el esquema de la base de datos mediante el uso de documentos //BSON// (Binary JSON). Los ficheros JSON son relaciones clave-valor |
{{ jsondocument.png }} | {{ jsondocument.png }} | ||
- | > Documento BSON en MongoDB | + | > Estructura |
- | Así, el esquema en MongoDB es totalmente flexible puesto que no obliga a diseñar un esquema o modelo antes de poder comenzar a registrar información. De esa forma es mucho más fácil mapear los documentos con objetos en nuestra aplicación, | + | Así, el esquema en MongoDB es totalmente flexible puesto que depende solamente del documento insertado, **pudiendo tener cada documento distinta cantidad |
^SGBD Relacional^ MongoDB^ | ^SGBD Relacional^ MongoDB^ | ||
Línea 30: | Línea 33: | ||
==== Documentos BSON ==== | ==== Documentos BSON ==== | ||
- | BSON es una representación | + | BSON es una representación |
- | Estos documentos de texto son ligeros y utilizan una cláve única por cada documento (campo _id). Además, su información es almacenada mediante parejas // | + | Estos documentos de texto son ligeros y utilizan una cláve única por cada documento (campo _id). Cada documento |
=== Campo _id === | === Campo _id === | ||
En MongoDB, cada documento almacenado en una colección requiere un identificador único que actúa de forma similar a una //clave primaria//. Si se omite este campo en un documento insertado en una colección, MongoDB genera automáticamente un valor '' | En MongoDB, cada documento almacenado en una colección requiere un identificador único que actúa de forma similar a una //clave primaria//. Si se omite este campo en un documento insertado en una colección, MongoDB genera automáticamente un valor '' | ||
- | El tipo de datos '' | + | El tipo de datos '' |
===== Puesta en marcha de MongoDB ===== | ===== Puesta en marcha de MongoDB ===== | ||
Una vez descargado el servidor [[http:// | Una vez descargado el servidor [[http:// | ||
Línea 59: | Línea 62: | ||
{{ : | {{ : | ||
- | MongoDB también incluye su propio cliente GUI para administrar las bases de datos. Se llama [[https:// | + | MongoDB también incluye su propio cliente GUI para administrar las bases de datos. Se llama [[https:// |
{{ : | {{ : | ||
- | Además, //MongoDB// dispone de una consola cliente que podemos lanzar ejecutando el comando '' | + | Además, // |
* En Windows | * En Windows | ||
Línea 145: | Línea 148: | ||
<code java> | <code java> | ||
MongoClient mongoClient = new MongoClient(); | MongoClient mongoClient = new MongoClient(); | ||
- | MongoDatabase db = mongoClient.getDatabase(" | + | //O si quiero abrir conexiones con un servidor remoto |
+ | MongoClient mongoClient = new MongoClient( " | ||
+ | |||
+ | // | ||
+ | MongoDatabase db = mongoClient.getDatabase(" | ||
//Y si queremos trabajar directamente con una coleccion concreta | //Y si queremos trabajar directamente con una coleccion concreta | ||
Línea 154: | Línea 161: | ||
=== Desconectar de la Base de Datos === | === Desconectar de la Base de Datos === | ||
- | Nos debemos asegurar | + | Debemos asegurarnos |
<code java> | <code java> | ||
mongoClient.close() | mongoClient.close() | ||
Línea 162: | Línea 169: | ||
==== Operaciones básicas ==== | ==== Operaciones básicas ==== | ||
- | MongoDB proporciona varias vías para ejecutar cada una de las operaciones CRUD ((https:// | + | MongoDB proporciona varias vías para ejecutar cada una de las operaciones CRUD ((https:// |
+ | |||
+ | En java los documentos | ||
=== Operaciones de inserción=== | === Operaciones de inserción=== | ||
Línea 207: | Línea 216: | ||
=== Operaciones de modificacion === | === Operaciones de modificacion === | ||
- | * // | + | * // |
- | * // | + | * // |
- | * // | + | * // |
Ejemplo desde consola | Ejemplo desde consola | ||
Línea 253: | Línea 263: | ||
<code java> | <code java> | ||
- | db.getCollection(" | + | //Para borrar un solo documento debemos utilizar un valor para un campo único (_id) |
+ | db.getCollection(" | ||
+ | |||
+ | db.getCollection(" | ||
</ | </ | ||
Línea 265: | Línea 279: | ||
db.usuarios.find( | db.usuarios.find( | ||
{autor: {$eq: " | {autor: {$eq: " | ||
- | {titulo: 1, descripcion: | + | {titulo: 1, descripcion: |
</ | </ | ||
Línea 287: | Línea 301: | ||
Document documento = new Document(" | Document documento = new Document(" | ||
FindIterable findIterable = db.getCollection(" | FindIterable findIterable = db.getCollection(" | ||
- | //O también | ||
- | Document libro = db.getCollection(" | ||
- | //Recorrer el conjunto de resultado | + | //Recorrer el conjunto de resultados |
Iterator< | Iterator< | ||
Línea 309: | Línea 321: | ||
</ | </ | ||
+ | ==== Operaciones de consulta avanzada ==== | ||
Podemos establecer distintos criterios de busqueda | Podemos establecer distintos criterios de busqueda | ||
- | REVISAR | + | |
En la documentación de mondoDB tenemos un [[http:// | En la documentación de mondoDB tenemos un [[http:// |
apuntes/mongodb.1549147801.txt.gz · Última modificación: 2024/09/16 16:05 (editor externo)