Cómo cargar datos de prueba en MongoDB

Estoy haciendo varias pruebas con una aplicación que utiliza MongoDB y estuve buscando alguna utilidad que me permitiera cargar datos durante el desarrollo. Hoy quiero compartir contigo Mongo Seeding, una herramienta súper sencilla para la carga de datos.

Instalar Mongo Seeding

Se trata de un módulo de Node.js, por lo que puedes instalarlo a través de este comando:

npm install --save-dev mongo-seeding-cli

Crear datos de prueba

Los datos que quieres cargar se pueden definir utilizando JavaScript, JSON o TypeScript. En mi caso he creado un archivo con un JSON que representa los documentos que quiero exportar:

[
    {
        "id": 1,
        "first_name": "Gary",
        "last_name": "Ortiz",
        "email": "[email protected]",
        "country": "Indonesia",
        "modified": "2015-05-16",
        "vip": false
    },
    {
        "id": 2,
        "first_name": "Albert",
        "last_name": "Williamson",
        "email": "[email protected]",
        "country": "China",
        "modified": "2015-03-11",
        "vip": true
    },
    {
        "id": 3,
        "first_name": "Mildred",
        "last_name": "Fuller",
        "email": "[email protected]",
        "country": "Peru",
        "modified": "2015-02-15",
        "vip": true
    }
]

Para generar las colecciones correctamente en tu MongoDB, es importante crear una jerarquía de carpetas con el nombre de las colecciones donde quieres que se almacenen los documentos incluidos en las mismas, en el formato que sean:

.
├── data // Root directory
│    ├── 1- people // `people` collection
│    │   ├── family.js
│    │   ├── friends.js
│    │   └── colleages.json
│    ├── 2-animals // `animals` collection
│    │   ├── cat.json
│    │   ├── dogs.js
│    │   └── wild.ts
│    └── 3-media // `media` collection
│        ├── videos.ts
│        └── audios.js

Por último, añade el siguiente script en tu package.json para recrear la base de datos con tus datos de prueba:

"seed-db": "seed -u 'mongodb://127.0.0.1:27017/your-db' --drop-database ./data/"

En su sitio de GitHub tienes más información de cómo utilizarlo.

¡Saludos!