# Migrar desde MySQL a MongoDB

## Migrar desde MySQL a MongoDB

Existen muchas formas de realizarlo desde tablas con estructura diferente a la coleccion

**MySQL:** tabla: municipios

![](/files/-Lc1WvnKd7b7FkTbw-mv)

**MongoDB**: Coleccion: distrito

![](/files/-Lc1WvnMgOVLf5Zu9uFF)

Son estructuras diferentes, necesitamos convertir

| mongodb                               | mysql                  |
| ------------------------------------- | ---------------------- |
| iddistrito                            | idmunicipio            |
| distrito                              | municipio              |
| Provincia provincia **(@Referenced)** | idprovincia            |
| activo                                | activo                 |
| List\<UserInfo> userInfo              | **---->No existe<---** |

**Pasos:**

* Ejecutar select desde MySQL

```
select * from municipios;
```

![](/files/-Lc1WvnOtFb-tADBJMrh)

1. En NetBeans creamos un archivo nuevo

![](/files/-Lc1WvnQk09QdkAiFL2e)

* Nombre

  ![](/files/-Lc1WvnSx4ylMFfJEWaa)
* Pegar el contenido

![](/files/-Lc1WvnULq62DEcEaB3G)

Los | son los separadores de atributos ,

debemos colocar los nombres de atributos y el userinfo

```javascript
"userInfo" : [{    "iduserinfo" : "a94b155f-9b87-4afc-a484-2ae752d01de0",      "username" : "avbravo",      "datetime" : { "$date" : 1509894567491 },      "description" : "create"    }]
```

Al inicio del archivo colocamos

```
[

]
```

Separar cada documento por , al final

```javascript
{"pais":"Afghanistan", "idpais":"AF","userInfo" : [{    "iduserinfo" : "a94b155f-9b87-4afc-a484-2ae752d01de0",      "username" : "avbravo",      "datetime" : { "$date" : 1509894567491 },      "description" : "create"    }]}, 
  {"pais":"Åland Islands", "idpais":"AX","userInfo" : [{    "iduserinfo" : "a94b155f-9b87-4afc-a484-2ae752d01de0",      "username" : "avbravo",      "datetime" : { "$date" : 1509894567491 },      "description" : "create"    }]},
```

Ejemplo:

```javascript
[
{"pais":"Afghanistan", "idpais":"AF","userInfo" : [{    "iduserinfo" : "a94b155f-9b87-4afc-a484-2ae752d01de0",      "username" : "avbravo",      "datetime" : { "$date" : 1509894567491 },      "description" : "create"    }]}, 
  {"pais":"Åland Islands", "idpais":"AX","userInfo" : [{    "iduserinfo" : "a94b155f-9b87-4afc-a484-2ae752d01de0",      "username" : "avbravo",      "datetime" : { "$date" : 1509894567491 },      "description" : "create"    }]}, 
]
```

Ejecutar el import desde mongodb shell

## Corregimientos

**MySQL: corregimientos**

![](/files/-Lc1WvnWXFTOZ2rqNBkC)

**MongoDB: corregimientos**

![](/files/-Lc1WvnYxF9n7B8Sh5bX)

* Ejecutar un select desde el shell de MySQL
* Ordenamos los campos para que sea mas fácil convertirlos

```
select idcorregimiento, corregimiento, idmunicipio from corregimientos
```

* Pegar el contenido en un archivo .json en NetBeans

![](/files/-Lc1Wvn_hzidXsoWgiT6)

Seleccionamos

```
 |           1 |
```

Lo reemplazamos

* indicamos el distrito referenciado
* agregamos el atributo activo
* agregamos el userinfo

```
,"distrito" : {    "iddistrito" : "1"} ,"activo" : "si",  "userInfo" : [{      "iduserinfo" : "4262a1f3-1748-45da-a28f-d26611d55e53",      "username" : "avbravo",      "datetime" : { "$date" : 1509894567491 },      "description" : "create"    }] },
```

![](/files/-Lc1WvnbyEF8kAAapxFY)

Quedaría

![](/files/-Lc1Wvnd7b0uQhYvxFFC)

Reemplazamos para todos los municipios 2,3, etc.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://avbravo-2.gitbook.io/jmoordb/capitulo-8/introduccion-cap5/migrar-desde-mysql.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
