> For the complete documentation index, see [llms.txt](https://avbravo-2.gitbook.io/jmoordb/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://avbravo-2.gitbook.io/jmoordb/capitulo-8/introduccion-cap5/migrar-desde-mysql.md).

# 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.
