One place for hosting & domains

      exportar

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


      El autor seleccionó COVID-19 Relief Fund para que reciba una donación como parte del programa Write for DOnations.

      Introducción

      MongoDB es uno de los motores de base de datos más populares de NoSQL. 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 de MongoDB.

      Debemos aclarar que importar y exportar se refiere a aquellas operaciones que manejan los datos en un formato legible por el ser humano, compatible con otros productos de software. Por el contrario, las operaciones de copia de seguridad y restauración crean o utilizan datos binarios específicos de MongoDB, que preservan la uniformidad y la integridad de sus datos, y también sus atributos específicos de MongoDB. Por lo tanto, para migrar, generalmente es preferible usar la copia de seguridad y la restauración siempre que los sistemas de origen y destino sean compatibles.

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

      Requisitos previos

      Para completar este tutorial, necesitará lo siguiente:

      Paso 1: Importar la información a MongoDB

      Para aprender cómo funciona la importación de información a MongoDB vamos a utilizar una base de datos popular de MongoDB de muestra sobre restaurantes. Está en formato .json y se puede descargar con wget de esta manera:

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

      Una vez completada la descarga, debería tener un archivo llamado primer-dataset.json (12 MB de tamaño) en el directorio actual. Importaremos los datos de este archivo a una nueva base de datos llamada newdb y a una colección llamada restaurants.

      Utilice el comando mongoimport de esta manera:

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

      El resultado tendrá el siguiente aspecto:

      Output

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

      Como muestra el comando anterior, se han importado 25359 documentos. Dado que no teníamos una base de datos llamada newdb, MongoDB la creó de forma automática.

      Vamos a verificar la importación.

      Conéctese a la base de datos newdb recientemente creada:

      Ahora está conectado a la instancia de la base de datos newdb. Observe que la línea de comandos ha cambiado, indicando que está conectado a la base de datos.

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

      El resultado mostrará 25359, que es el número de documentos importados. Para obtener una comprobación aún mejor, puede seleccionar el primer documento de la colección de restaurantes de esta manera:

      El resultado tendrá el siguiente aspecto:

      [secondary label 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, tales como el contenido, la codificación, etc. El formato json utiliza la codificación UTF-8 sus exportaciones e importaciones deberían estar en dicha codificación. Tenga esto en cuenta si edita los archivos json de forma manual. De lo contrario, MongoDB se encargará de ello automáticamente.

      Para salir de la línea de comandos de MongoDB, escriba exit en la línea de comandos:

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

      Paso 2: Exportar información desde MongoDB

      Como mencionamos antes, cuando exporta la información de MongoDB, puede obtener un archivo de texto legible por el ser humano con sus datos. De manera predeterminada, la información se exportará en formato json, pero también puede exportar a csv (valor separado por comas).

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

      Un ejemplo simple de mongoexport sería exportar la colección de restaurantes desde la base de datos newdb que hemos importado anteriormente. Puede hacerse de esta manera:

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

      En el comando anterior, se utilizó --db para especificar la base de datos, -c para la colección y --out, para el archivo en el que se guardarán los datos.

      El resultado de una exitosa exportación de mongoexport debe tener el siguiente aspecto:

      Output

      2020-11-11T19:39:57.595+0000 connected 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+0000 exported 25359 records

      El resultado anterior muestra que se han importado 25359 documentos, el mismo número que de los documentos importados.

      En algunos casos, es posible que necesite exportar solo una parte de su colección. Teniendo en cuenta la estructura y el contenido del archivo json de los restaurantes, vamos a exportar todos los restaurantes que cumplen los criterios de estar situados en el barrio del Bronx y de tener cocina china. Si queremos obtener esta información directamente mientras estamos conectados a MongoDB, vuelva a conectarse a la base de datos:

      Luego, utilice esta consulta:

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

      Los resultados se muestran en el terminal:

      Output

      • 2020-12-03T01:35:25.366+0000 connected to: mongodb://localhost/
      • 2020-12-03T01:35:25.410+0000 exported 323 records

      Para salir de la línea de comandos de MongoDB, escriba exit:

      Si desea exportar los datos de una línea de comandos sudo en lugar de mientras está conectado a la base de datos, haga que la consulta anterior forme parte del comando mongoexport especificándolo para el argumento -q de esta manera:

      • sudo mongoexport --db newdb -c restaurants -q "{"borough": "Bronx", "cuisine": "Chinese"}" --out Bronx_Chinese_retaurants.json

      Tenga en cuenta que estamos evitando las comillas dobles con una barra oblicua inversa () en la consulta. De manera similar, tiene que evitar cualquier otro carácter especial en la consulta.

      Si la exportación se realizó de forma correcta, el resultado debería tener el siguiente aspecto:

      Output

      2020-11-11T19:49:21.727+0000 connected to: mongodb://localhost/ 2020-11-11T19:49:21.765+0000 exported 323 records

      Lo anterior muestra que se han exportado 323 registros y puede encontrarlos en el archivo Bronx_Chinese_retaurants.json que especificamos.

      Utilice cat y less para escanear los datos:

      • cat Bronx_Chinese_retaurants.json | less

      Utilice SPACE para navegar por los datos:

      Output

      • date":{"$date":"2015-01-14T00:00:00Z"},"grade":"Z","score":36}],"na{"_id":{"$oid":"5fc8402d141f5e54f9054f8d"},"address":{"building":"1236","coord":[-73.8893654,40.81376179999999],"street":"238 Spofford Ave","zipcode":"10474"},"borough":"Bronx","cuisine":"Chinese","grades":[{"date":{"$date":"2013-12-30T00:00:00Z"},"grade":"A","score":8},{"date":{"$date":"2013-01-08T00:00:00Z"},"grade":"A","score":10},{"date":{"$date":"2012-06-12T00:00:00Z"},"grade":"B","score":15}],
      • . . .

      Presione q para salir. Ahora puede importar y exportar una base de datos de MongoDB.

      Conclusión

      Este artículo le ha presentado los aspectos esenciales de importación y exportación de información desde y hacia una base de datos de MongoDB. Puede continuar leyendo sobre Cómo hacer una copia de seguridad, restaurar y migrar una base de datos de MongoDB en Ubuntu 20.04.

      También puede considerar usar la replicación. La replicación le permite continuar ejecutando su servicio de MongoDB sin interrupción desde un servidor de MongoDB esclavo mientras restaura el maestro tras un fallo. Parte de la replicación es el registro de operaciones (oplog), que registra todas las operaciones que modifican sus datos. Puede usar este registro, igual que usaría el registro binario en MySQL, para restaurar sus datos después de haber realizado la última copia de seguridad. Recuerde que las copias de seguridad suelen realizarse durante la noche, y si decide restaurar una copia de seguridad en la noche, se perderá todas las actualizaciones desde la última copia de seguridad.



      Source link

      Como importar e exportar um banco de dados MongoDB no Ubuntu 20.04


      O autor selecionou a COVID-19 Relief Fund​​​​​ para receber uma doação como parte do programa Write for DOnations.

      Introdução

      O MongoDB é um dos mecanismos de banco de dados NoSQL mais populares. Ele é famoso por ser escalável, poderoso, confiável e fácil de usar. Neste artigo, vamos mostrar como importar e exportar seus bancos de dados MongoDB.

      Devemos deixar claro que ao dizer importação e exportação, estamos nos referindo àquelas operações que lidam com dados em um formato legível para humanos e compatível com outros produtos de software. Em contrapartida, as operações de backup e restauração criam ou usam dados binários específicos do MongoDB, que preservam a consistência e integridade dos seus dados, além de seus atributos específicos do MongoDB. Assim, para a migração, geralmente é preferível usar o backup e restauração, desde que os sistemas de origem e de destino sejam compatíveis.

      As tarefas de backup, reinicialização e migração estão além do escopo deste artigo. Para obter mais informações, consulte Como fazer backup, restaurar e migrar um banco de dados MongoDB no Ubuntu 20.04.

      Pré-requisitos

      Para concluir este tutorial, você precisará do seguinte:

      Passo 1 — Importando informações para o MongoDB

      Para aprender como funciona a importação de informações para o MongoDB, vamos usar como exemplo um banco de dados MongoDB popular sobre restaurantes. Ele está no formato .json e pode ser baixado usando o wget desta forma:

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

      Assim que o download terminar, você terá um arquivo chamado primer-dataset.json (com tamanho de 12 MB) no diretório atual. Vamos importar os dados desse arquivo para um novo banco de dados chamado newdb e para uma coleção chamada restaurants.

      Use o comando mongoimport desta forma:

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

      O resultado ficará parecido com este:

      Output

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

      Como o comando acima mostra, 25359 documentos foram importados. Como não tínhamos um banco de dados chamado newdb, o MongoDB o criou automaticamente.

      Vamos verificar a importação.

      Conecte-se ao banco de dados newdb recém-criado:

      Agora, você está conectado à instância de banco de dados newdb. Note que seu prompt mudou, indicando que você está conectado ao banco de dados.

      Conte os documentos na coleção de restaurantes com o comando:

      O resultado mostrará 25359, que é o número de documentos importados. Para uma verificação ainda melhor, selecione o primeiro documento da coleção de restaurantes desta forma:

      O resultado ficará parecido com este:

      [secondary label 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"
      }
      

      Uma verificação detalhada como essa poderia revelar problemas com os documentos, como seu conteúdo, codificação, etc. O formato json usa a codificação UTF-8 e suas exportações e importações devem estar naquela codificação. Tenha isso em mente se for editar manualmente algum arquivo json. Caso contrário, o MongoDB manuseará ele automaticamente para você.

      Para sair do prompt do MongoDB, digite exit no prompt:

      Você será enviado de volta ao prompt de linha de comando normal como seu usuário não raiz.

      Passo 2 — Exportando informações do MongoDB

      Como mencionado anteriormente, ao exportar informações do MongoDB, é possível adquirir um arquivo de texto legível para humanos com seus dados. Por padrão, as informações são exportadas no formato json, mas também é possível exportar para csv (valores separados por vírgula).

      Para exportar informações do MongoDB, use o comando mongoexport. Ele permite fazer uma exportação bastante refinada, sendo possível especificar um banco de dados, uma coleção, um campo e até mesmo usar uma consulta para a exportação.

      Um exemplo de mongoexport simples seria exportar a coleção de restaurantes do banco de dados newdb que importamos anteriormente. Isso pode ser feito desta forma:

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

      No comando acima, usamos o --db para especificar o banco de dados, -c para a coleção e --out para o arquivo no qual os dados serão salvos.

      O resultado de um mongoexport executado com sucesso deve ser parecido com este:

      Output

      2020-11-11T19:39:57.595+0000 connected 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+0000 exported 25359 records

      O resultado acima mostra que 25359 documentos foram importados — o mesmo número dos importados.

      Em alguns casos, pode ser necessário exportar apenas uma parte da sua coleção. Considerando a estrutura e o conteúdo do arquivo json de restaurantes, vamos exportar todos os restaurantes que satisfaçam os critérios de estar localizado no bairro do Bronx e ser de cozinha chinesa. Se quisermos obter essas informações diretamente enquanto conectados ao MongoDB, conecte-se novamente ao banco de dados:

      Então, use esta consulta:

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

      Os resultados são exibidos no terminal:

      Output

      • 2020-12-03T01:35:25.366+0000 connected to: mongodb://localhost/
      • 2020-12-03T01:35:25.410+0000 exported 323 records

      Para sair do prompt do MongoDB, digite exit:

      Se quiser exportar os dados de uma linha de comando sudo sem estar conectado ao banco de dados, incorpore a consulta anterior no comando mongoexport especificando-a no argumento -q desta forma:

      • sudo mongoexport --db newdb -c restaurants -q "{"borough": "Bronx", "cuisine": "Chinese"}" --out Bronx_Chinese_retaurants.json

      Note que estamos adicionando o caractere de escape de barra invertida () nas aspas duplas da consulta. De maneira similar, é necessário adicionar o caractere de escape a qualquer outro caractere especial na consulta.

      Se a exportação tiver sido bem-sucedida, o resultado se parecerá com este:

      Output

      2020-11-11T19:49:21.727+0000 connected to: mongodb://localhost/ 2020-11-11T19:49:21.765+0000 exported 323 records

      O exemplo acima mostra que 323 registros foram exportados, e é possível encontrá-los no arquivo Bronx_Chinese_retaurants.json que especificamos.

      Use o cat e less para analisar os dados:

      • cat Bronx_Chinese_retaurants.json | less

      Use o SPACE para paginar os dados:

      Output

      • date":{"$date":"2015-01-14T00:00:00Z"},"grade":"Z","score":36}],"na{"_id":{"$oid":"5fc8402d141f5e54f9054f8d"},"address":{"building":"1236","coord":[-73.8893654,40.81376179999999],"street":"238 Spofford Ave","zipcode":"10474"},"borough":"Bronx","cuisine":"Chinese","grades":[{"date":{"$date":"2013-12-30T00:00:00Z"},"grade":"A","score":8},{"date":{"$date":"2013-01-08T00:00:00Z"},"grade":"A","score":10},{"date":{"$date":"2012-06-12T00:00:00Z"},"grade":"B","score":15}],
      • . . .

      Pressione q para sair. Agora, é possível importar e exportar um banco de dados MongoDB.

      Conclusão

      Este artigo introduziu as informações essenciais sobre a importação e exportação de e para um banco de dados MongoDB. Continue a leitura com Como fazer backup, restaurar e migrar um banco de dados MongoDB no Ubuntu 20.04.

      Considere também o uso da replicação. A replicação permite continuar executando seu serviço MongoDB ininterruptamente a partir de um servidor MongoDB subordinado enquanto estiver restaurando o mestre depois de uma falha. Parte da replicação é o registro de operações (oplog), que registra todas as operações que modificam seus dados. É possível usar esse registro, assim como usaria o registro binário no MySQL, para restaurar seus dados depois que o último backup tiver sido realizado. Lembre-se que os backups geralmente são realizados durante a noite, e se quiser restaurar um backup durante a tarde, você estará perdendo todas as atualizações desde o último backup.



      Source link