Cómo importar y exportar una base de datos MongoDB en Ubuntu 20.04

Índice
  1. Introducción
  • Prerrequisitos
  • Paso 1: Importación de información a MongoDB
  • Paso 2: Exportación de información desde MongoDB
  • El autor seleccionó el Fondo de Ayuda COVID-19 para recibir una donación como parte del programa Write for DOnations .

    Introducción

    MongoDB es uno de los motores de bases de datos NoSQL más populares. Es famoso por ser escalable, potente, confiable y fácil de usar. En este artículo, le mostraremos cómo importar y exportar sus bases de datos MongoDB.

    Debemos aclarar que por importación y exportación nos referimos a aquellas operaciones que manejan datos en un formato legible para humanos, compatible con otros productos de software. Por el contrario, las operaciones de backup y restauración crean o utilizan datos binarios específicos de MongoDB, que preservan la consistencia e integridad de sus datos y también sus atributos específicos de MongoDB. Por lo tanto, para la migración, generalmente es preferible utilizar backup y restauración, siempre que los sistemas de origen y destino sean compatibles.

    Las tareas de copia de seguridad, restauración y migración quedan fuera del alcance de este artículo. Para obtener más información, consulte Cómo realizar copias de seguridad, restaurar y migrar una base de datos MongoDB en Ubuntu 20.04 .

    Prerrequisitos

    Para completar este tutorial necesitarás lo siguiente:

    • Un Droplet de Ubuntu 20.04 configurado según la guía de configuración inicial del servidor de Ubuntu 20.04 , incluido un usuario sudo no root y un firewall.
    • MongoDB instalado y configurado usando el artículo Cómo instalar MongoDB en Ubuntu 20.04 .
    • Comprensión de las diferencias entre los datos JSON y BSON en MongoDB. Para obtener una explicación detallada, lea el Paso uno: uso de JSON y BSON en MongoDB en nuestro tutorial Cómo realizar copias de seguridad, restaurar y migrar una base de datos MongoDB en Ubuntu 20.04 .

    Paso 1: Importación de información a MongoDB

    Para aprender cómo funciona la importación de información a MongoDB, usemos una base de datos MongoDB de ejemplo popular sobre restaurantes. Está en formato .json y se puede descargar de wgetla siguiente manera:

    1. wget https://raw.githubusercontent.com/mongodb/docs-assets/primer-dataset/primer-dataset.json

    Una vez que se complete la descarga, debería haber un archivo llamado primer-dataset.json(tamaño de 12 MB) en el directorio actual. Importemos los datos de este archivo a una nueva base de datos llamada newdby a una colección llamada restaurants.

    Utilice el mongoimportcomando de la siguiente manera:

    1. sudo mongoimport --db newdb --collection restaurants --file primer-dataset.json

    El resultado se verá así:

    Output2020-11-11T19:37:55.607+0000connected to: mongodb://localhost/2020-11-11T19:37:57.841+000025359 document(s) imported successfully. 0 document(s) failed to import

    Como muestra el comando anterior, se importaron 25359 documentos. Como no teníamos una base de datos llamada newdb, MongoDB la creó automáticamente.

    Verifiquemos la importación.

    Conéctese a la newdbbase de datos recién creada:

    1. sudo mongo newdb

    Ahora está conectado a la newdbinstancia de la base de datos. Observe que el mensaje ha cambiado, lo que indica que está conectado a la base de datos.

    Cuente los documentos de la colección de restaurantes con el comando:

    1. db.restaurants.count()

    El resultado mostrará 25359, que es la cantidad de documentos importados. Para una mejor verificación, puede seleccionar el primer documento de la colección de restaurantes de la siguiente manera:

    1. db.restaurants.findOne()

    El resultado se verá así:

    Output{"_id" : ObjectId("5fac3d937f12c471b3f26733"),"address" : {"building" : "1007","coord" : [-73.856077,40.848447],"street" : "Morris Park Ave","zipcode" : "10462"},"borough" : "Bronx","cuisine" : "Bakery","grades" : [{"date" : ISODate("2014-03-03T00:00:00Z"),"grade" : "A","score" : 2},...],"name" : "Morris Park Bake Shop","restaurant_id" : "30075445"}

    Una comprobación tan detallada podría revelar problemas con los documentos, como su contenido, codificación, etc. El formato json utiliza UTF-8codificación y sus exportaciones e importaciones deben estar en esa codificación. Tenga esto en cuenta si edita manualmente los archivos json. De lo contrario, MongoDB lo manejará automáticamente por usted.

    Para salir del indicador de MongoDB, escriba exiten el indicador:

    1. exit

    Volverá a la línea de comandos normal como su usuario no root.

    Paso 2: Exportación de información desde MongoDB

    Como hemos mencionado anteriormente, al exportar la información de MongoDB puedes obtener un archivo de texto legible para humanos con tus datos. Por defecto, la información se exporta en formato json pero también puedes exportar a csv (valores separados por comas).

    Para exportar información desde MongoDB, utilice el comando mongoexport. Le permite realizar una exportación muy detallada, de modo que pueda especificar una base de datos, una colección, un campo e incluso utilizar una consulta para la exportación.

    Un ejemplo sencillo mongoexportsería exportar la colección de restaurantes de la newdbbase de datos que hemos importado previamente. Se puede hacer de la siguiente manera:

    1. sudo mongoexport --db newdb -c restaurants --out newdbexport.json

    En el comando anterior, utilizamos --dbpara especificar la base de datos, -cpara la colección y --outpara el archivo en el que se guardarán los datos.

    El resultado de una operación exitosa mongoexportdebería verse así:

    Output2020-11-11T19:39:57.595+0000connected to: mongodb://localhost/2020-11-11T19:39:58.619+0000[###############.........]  newdb.restaurants  16000/25359  (63.1%)2020-11-11T19:39:58.871+0000[########################]  newdb.restaurants  25359/25359  (100.0%)2020-11-11T19:39:58.871+0000exported 25359 records

    El resultado anterior muestra que se han importado 25359 documentos, la misma cantidad que los importados.

    En algunos casos, es posible que necesites exportar solo una parte de tu colección. Teniendo en cuenta la estructura y el contenido del archivo JSON de restaurantes, exportemos todos los restaurantes que cumplan con los criterios de estar ubicados en el distrito del Bronx y ofrecer cocina china. Si queremos obtener esta información directamente mientras estamos conectados a MongoDB, conéctate a la base de datos nuevamente:

    1. sudo mongo newdb

    Luego, utiliza esta consulta:

    db.restaurants.find( { "borough": "Bronx", "cuisine": "Chinese" } )

    Los resultados se muestran en la terminal:

    1. Output2020-12-03T01:35:25.366+0000connected to: mongodb://localhost/
    2. 2020-12-03T01:35:25.410+0000exported 323 records

    Para salir del indicador de MongoDB, escriba exit:

    1. exit

    Si desea exportar los datos desde una línea de comando sudo en lugar de hacerlo mientras está conectado a la base de datos, haga que la consulta anterior sea parte del mongoexportcomando especificándola para el -qargumento de la siguiente manera:

    1. sudo mongoexport --db newdb -c restaurants -q "{"borough"": ""Bronx""

      No related posts.

    SUSCRÍBETE A NUESTRO BOLETÍN 
    No te pierdas de nuestro contenido ni de ninguna de nuestras guías para que puedas avanzar en los juegos que más te gustan.

    Deja una respuesta

    Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

    Subir

    Este sitio web utiliza cookies para mejorar tu experiencia mientras navegas por él. Este sitio web utiliza cookies para mejorar tu experiencia de usuario. Al continuar navegando, aceptas su uso. Mas informacion