<commit_before><!---
Ejemplos de inserción de videos

<video class="stretch" controls><source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" type="video/mp4"></video>
<iframe width="560" height="315" src="https://www.youtube.com/embed/3RBq-WlL4cU" frameborder="0" allowfullscreen></iframe>

slide: data-background="#ff0000" 
element: class="fragment" data-fragment-index="1"
-->

## HLC - Fullstack
---
![HLC-Fullstack](http://jamj2000.github.io/hlc-fullstack/hlc-fullstack.png)
<p><small> IES <NAME> - Écija - Spain </small></p>


## Bases de Datos noSQL

[![cc-by-sa](http://jamj2000.github.io/hlc-fullstack/cc-by-sa.png)](http://creativecommons.org/licenses/by-sa/4.0/)


## Índice
--- 
- ### Introducción
- ### Bases de datos noSQL
- ### MongoDB: Primeros pasos
- ### MongoDB: Operaciones básicas
- ### MongoDB: Copias de seguridad

<!--- Note: Nota a pie de página. -->



## Introducción


### En esta Unidad aprenderemos a

- Instalar el sistema gestor de bases de datos noSQL.
- Gestionar el sistema gestor de bases de datos noSQL.
- Distinguir los conceptos de base de datos, colección y documento.
- Realizar consultas de lectura y modificación de datos.
- Realizar y restaurar copias de seguridad de los datos.
- Diferenciar objectos Javascript de documentos JSON



## Bases de datos noSQL


### Características

- Muy eficientes.   
- Datos no consitentes en todo momento.
- Puede servir gran cantidad de carga de lecturas y escrituras.
- Esquema dinámico.


### Ventajas

- Permiten escalabilidad horizontal de forma sencilla.
- Se ejecutan en clusters de máquinas baratas.
- Pueden manejar enormes cantidades de datos.
- No generan cuellos de botella.


### Desventajas

- Tecnología relativamente nueva.
- Para datos que siguen el modelo relacional son mejores los SGBDR.
- Poca cantidad de desarrolladores y administradores que conocen la tecnología.
- Falta de estándares. Cada base de datos NoSQL tiene su propia API.



## MongoDB: Primeros pasos

![Mongo DB](assets/mongodb.png)


### Instalación

#### Ubuntu

```bash
apt update 
apt install mongodb  
``` 


### Servicio

```bash
systemctl  status   mongodb   # Estado 
systemctl  start    mongodb   # Iniciar
systemctl  restart  mongodb   # Reiniciar
systemctl  stop     mongodb   # Parar

systemctl  enable   mongodb   # Habilitar
systemctl  disable  mongodb   # Deshabilitar
```


### Servidor y cliente 

- **mongod**: servidor
- **mongo**: cliente

```bash
mongod  --version
mongo   --version
```


### Conectar al gestor de BBDD

**mongo**

```bash
$ mongo 
connecting to: test
MongoDB shell version: 3.6.8
```

**mongo   *nombre_bd***

```bash
$ mongo local
connecting to: local
MongoDB shell version: 3.6.8
```


### Listar BBDD

**show dbs**

```bash
> show dbs
admin  0.000GB
local  0.000GB

> show databases;
admin  0.000GB
local  0.000GB
```


### Cambiar de BD

**use *nombre_bd***

- Si la BD no existe, automáticamente se crea.

```bash
> use prueba
switched to db prueba
```


### db

**db**

- **db** es la variable que contiene el nombre de la BD en uso.

```bash
> db    
prueba
```


### Eliminar una BD

**db.dropDatabase()**

```bash
> db.dropDatabase()
{ "ok" : 1 }
```


### Colecciones y Documentos<commit_msg>Update diapositivas.md<commit_after><!---
Ejemplos de inserción de videos

<video class="stretch" controls><source src="http://clips.vorwaerts-gmbh.de/big_buck_bunny.mp4" type="video/mp4"></video>
<iframe width="560" height="315" src="https://www.youtube.com/embed/3RBq-WlL4cU" frameborder="0" allowfullscreen></iframe>

slide: data-background="#ff0000" 
element: class="fragment" data-fragment-index="1"
-->

## HLC - Fullstack
---
![HLC-Fullstack](http://jamj2000.github.io/hlc-fullstack/hlc-fullstack.png)
<p><small> IES <NAME> - Écija - Spain </small></p>


## Bases de Datos noSQL

[![cc-by-sa](http://jamj2000.github.io/hlc-fullstack/cc-by-sa.png)](http://creativecommons.org/licenses/by-sa/4.0/)


## Índice
--- 
- ### Introducción
- ### Bases de datos noSQL
- ### MongoDB: Primeros pasos
- ### MongoDB: Operaciones básicas
- ### MongoDB: Copias de seguridad

<!--- Note: Nota a pie de página. -->



## Introducción


### En esta Unidad aprenderemos a

- Instalar el sistema gestor de bases de datos noSQL.
- Gestionar el sistema gestor de bases de datos noSQL.
- Distinguir los conceptos de base de datos, colección y documento.
- Realizar consultas de lectura y modificación de datos.
- Realizar y restaurar copias de seguridad de los datos.
- Diferenciar objectos Javascript de documentos JSON



## Bases de datos noSQL


### Características

- Muy eficientes.   
- Datos no consitentes en todo momento.
- Puede servir gran cantidad de carga de lecturas y escrituras.
- Esquema dinámico.


### Ventajas

- Permiten escalabilidad horizontal de forma sencilla.
- Se ejecutan en clusters de máquinas baratas.
- Pueden manejar enormes cantidades de datos.
- No generan cuellos de botella.


### Desventajas

- Tecnología relativamente nueva.
- Para datos que siguen el modelo relacional son mejores los SGBDR.
- Poca cantidad de desarrolladores y administradores que conocen la tecnología.
- Falta de estándares. Cada base de datos NoSQL tiene su propia API.



## MongoDB: Primeros pasos

![Mongo DB](assets/mongodb.png)


### Instalación

#### Ubuntu

```bash
apt update 
apt install mongodb  
``` 


### Servicio

```bash
systemctl  status   mongodb   # Estado 
systemctl  start    mongodb   # Iniciar
systemctl  restart  mongodb   # Reiniciar
systemctl  stop     mongodb   # Parar

systemctl  enable   mongodb   # Habilitar
systemctl  disable  mongodb   # Deshabilitar
```


### Servidor y cliente 

- **mongod**: servidor
- **mongo**: cliente

```bash
mongod  --version
mongo   --version
```


### Conectar al gestor de BBDD

**mongo**

```bash
$ mongo 
connecting to: test
MongoDB shell version: 3.6.8
```

**mongo   *nombre_bd***

```bash
$ mongo local
connecting to: local
MongoDB shell version: 3.6.8
```


### Listar BBDD

**show dbs**

```bash
> show dbs
admin  0.000GB
local  0.000GB

> show databases;
admin  0.000GB
local  0.000GB
```


### Cambiar de BD

**use *nombre_bd***

- Si la BD no existe, automáticamente se crea de forma temporal, y finalmente será desechada si no se insertan datos en ella.

```bash
> use prueba
switched to db prueba
```


### db

**db**

- **db** es la variable que contiene el nombre de la BD en uso.

```bash
> db    
prueba
```


### Eliminar una BD

**db.dropDatabase()**

```bash
> db.dropDatabase()
{ "ok" : 1 }
```


### Colecciones y Documentos
{'fraction_non_alphanumeric': 0.1297148114075437, 'fraction_numerical': 0.015026065624041705, 'mean_word_length': 3.655960028551035, 'pattern_counts': {'":': 0, '<': 27, '<?xml version=': 0, '>': 37, 'https://': 2, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6321232', 'n_tokens_mistral': 2548, 'n_tokens_neox': 2362, 'n_words': 706}