LINUX

Cómo crear y eliminar bases de datos en MongoDB desde CLI

MongoDB es una base de datos de documentos de código abierto y una base de datos NoSQL líder. Es una base de datos multiplataforma, orientada a documentos que proporciona alto rendimiento, alta disponibilidad y fácil escalabilidad. Está escrito en C ++. Trabaja sobre el concepto de colección y documento. Explicaré brevemente los tres componentes en este aspecto.

los base de datos es un contenedor físico para colecciones. Cada base de datos obtiene su propio conjunto de archivos en el sistema de archivos. Un solo servidor MongoDB contiene varias bases de datos.

A colección se refiere a un grupo de documentos MongoDB. Es equivalente a una tabla RDBMS. Podemos encontrar una colección dentro de una sola base de datos. Los documentos de una colección pueden tener diferentes campos.

A documento es un conjunto de pares clave-valor. Tienen un esquema dinámico, lo que significa que los documentos de la misma colección no necesitan tener el mismo conjunto de campos o estructura. Además, los campos comunes en los documentos de una colección pueden contener diferentes tipos de datos.

Terminología

En este tutorial, explicaré cómo crear y soltar una base de datos en MongoDB desde la línea de comandos.

Cómo crear una base de datos en MongoDB

En MongoDB, «use DATABASE_NAME» se usa para crear una base de datos. Este comando creará una nueva base de datos si no existe, de lo contrario, devolverá la base de datos existente.

Sintaxis:

use Database_name

Ejemplo:

> use mytestdb
switched to db mytestdb

Esto creará una base de datos llamada «mytestdb», si no está presente y cambiará a esa base de datos después de la creación. Si ya está presente, cambiará a esa base de datos existente con este comando.

Para verificar su base de datos actualmente en funcionamiento, use el comando db.

> use mytestdb
switched to db mytestdb
> db
mytestdb

Cómo ver bases de datos en MongoDB

Para verificar su lista de bases de datos, use el comando show dbs.

show dbs
local 0.000GB

La base de datos que ha creado no aparece aquí. Necesitamos insertar al menos un documento en él para mostrar esa base de datos en la lista.

> db.movie.insert({"name":"tutorials point"})
WriteResult({ "nInserted" : 1 })
> show dbs
local 0.000GB
mytestdb 0.000GB
sahedb 0.000GB

En MongoDB, la base de datos predeterminada es «prueba». Si no creó ninguna base de datos, las colecciones se almacenarán en la base de datos de prueba.

Cómo cambiar a las bases de datos en MongoDB

Cualquier operación realizada sin especificar explícitamente una base de datos se realizará en la base de datos actual. Para elegir nuestra base de datos requerida, necesitamos cambiar a esa base de datos usando el comando «usar». Para ver su base de datos actual puede usar el comando «db». Por ejemplo, actualmente estoy en la base de datos «mytestdb» y necesito usar otra base de datos «sahedb» para mi propósito. Así es como verifico el estado actual y cambio al requerido.

> db
mytestdb
> use sahedb
switched to db sahedb
> db
sahedb

Cómo soltar una base de datos en MongoDB

MongoDB usa el comando db.dropDatabase () para eliminar una base de datos existente.

Sintaxis

La sintaxis básica del comando dropDatabase () es la siguiente

db.dropDatabase()

Esto eliminará la base de datos seleccionada. Si no ha seleccionado ninguna base de datos, eliminará la base de datos de ‘prueba’ predeterminada. En este ejemplo, he mostrado cómo eliminé mi base de datos «sahedb».

> db
sahedb
> db.dropDatabase()
{ "dropped" : "sahedb", "ok" : 1 }

Podemos confirmar la eliminación de la base de datos enumerando las bases de datos actuales.

show dbs
local 0.000GB
mytestdb 0.000GB

Cómo crear una colección en MongoDB

En MongoDB, db.createCollection (nombre, opciones) se usa para crear una colección.

Sintaxis

La sintaxis básica del comando createCollection () es la siguiente:

db.createCollection(name, options)

En el comando, un nombre es el nombre de la colección que se creará. Options es un documento y se usa para especificar la configuración de la colección, como el tamaño de la memoria y la indexación.

use mytestdb
switched to db mytestdb
> db.createCollection("media")
{ "ok" : 1 }

Puede verificar la colección creada dentro de la base de datos usando el comando show collections.

show collections
movie
media

Incluso puede crear las colecciones con algunas opciones de la siguiente manera:

db.createCollection("mycol", { capped : true, autoIndexID : true, size : 6142800, max : 10000 } )
{ "ok" : 1 }

Destaqué las opciones utilizadas en la creación de esta colección.

En general, no necesitamos crear una colección. Con un simple comando de inserción, puede crear colecciones automáticamente.

db.linoxide.insert({"name" : "linux"})
WriteResult({ "nInserted" : 1 })
> show collections
linoxide
movie
mycol

Cómo insertar datos en la colección MongoDB

Podemos insertar datos en la colección de MongoDB, utilizando el método insert () o save () de MongoDB.

Sintaxis

La sintaxis básica del comando insert () es la siguiente:

db.COLLECTION_NAME.insert(document)

Aquí, estoy insertando algunos datos en mi colección «devops» dentro del «sahedb».

use sahedb
switched to db sahedb
> db.devops.insert({"name" : "SAM", "age" : "25", "Designation" : "Admin"})
WriteResult({ "nInserted" : 1 })

Cómo eliminar una colección en MongoDB

En MongoDB, db.collection.drop () se usa para eliminar una colección de la base de datos. Necesitamos ejecutar este comando dentro de la base de datos.

Sintaxis

La sintaxis básica del comando drop () es la siguiente

db.COLLECTION_NAME.drop()
>db.media.drop()
true

Si intentamos eliminar una tabla que no existe entonces, devolverá «falso» en lugar de «verdadero». En otras palabras, el método drop () devolverá verdadero, si la colección seleccionada se descarta correctamente, de lo contrario, devolverá falso.

Cómo realizar copias de seguridad en MongoDB

Podemos hacer una copia de seguridad de las bases de datos de MongoDB usando el comando «mongodump». Al ejecutar este comando, podemos hacer una copia de seguridad de todas las bases de datos de MongoDB y almacenarlas en una ruta requerida.

$# mongodump --out /home/FullDBbackups
2016-12-13T06:16:00.665+0000 writing mytestdb.linoxide to
2016-12-13T06:16:00.667+0000 writing mytestdb.movie to
2016-12-13T06:16:00.668+0000 writing mytestdb.mycollection to
2016-12-13T06:16:00.671+0000 writing mytestdb.mycol to
2016-12-13T06:16:00.671+0000 done dumping mytestdb.linoxide (1 document)
2016-12-13T06:16:00.674+0000 done dumping mytestdb.movie (1 document)
2016-12-13T06:16:00.676+0000 done dumping mytestdb.mycollection (0 documents)
2016-12-13T06:16:00.676+0000 done dumping mytestdb.mycol (0 documents)
2016-12-13T06:16:00.677+0000 writing sahedb.devops to
2016-12-13T06:16:00.678+0000 done dumping sahedb.devops (0 documents)

root@mongodb:/home/FullDBbackups# ll
total 16
drwxr-xr-x 4 root root 4096 Dec 13 06:16 ./
drwxr-xr-x 5 root root 4096 Dec 13 06:15 ../
drwxr-xr-x 2 root root 4096 Dec 13 06:16 mytestdb/
drwxr-xr-x 2 root root 4096 Dec 13 06:16 sahedb/

Cuando este comando simplemente se ejecuta sin ninguna ruta de directorio de respaldo, entonces creará el respaldo dentro de «/ root / dump» por defecto.

Si queremos hacer una copia de seguridad de una sola base de datos en MongoDB, necesitamos especificar esa base de datos en particular con la opción «-d» o –db=(dbname).

Sintaxis

mongodump --db=<dbname> --out BACKUP_DIRECTORY

$ mongodump -d sahedb --out /home/
2016-12-13T06:14:58.650+0000 writing sahedb.devops to
2016-12-13T06:14:58.651+0000 done dumping sahedb.devops (0 documents)

root@mongodb:/home/sahedb# ls
devops.bson devops.metadata.json

A continuación, podemos verificar cómo hacer una copia de seguridad de una colección en particular en una base de datos MongoDB. Por ejemplo, necesito hacer una copia de seguridad de la película de la colección en la base de datos «mytestdb». Veamos cómo lograrlo.

Sintaxis

mongodump –collection COLLECTION –db DB_NAME root @: / home / Collectionbackup # mongodump –collection movie -d mytestdb $ # ls -R dump / dump /: mytestdb dump / mytestdb: movie.bson movie.metadata.json

Necesitamos ejecutar este comando desde la carpeta donde necesitamos nuestras copias de seguridad.

Cómo restaurar bases de datos en MongoDB

Puede restaurar los datos de una copia de seguridad en MongoDB usando el comando mongorestore. Este comando restaura todos los datos del directorio de copia de seguridad predeterminado, que es / root / dump de forma predeterminada.

$# mongorestore
2016-12-13T06:51:23.327+0000 using default 'dump' directory
2016-12-13T06:51:23.328+0000 building a list of dbs and collections to restore from dump dir
2016-12-13T06:51:23.333+0000 reading metadata for mytestdb.movie from dump/mytestdb/movie.metadata.json
2016-12-13T06:51:23.335+0000 restoring mytestdb.movie from dump/mytestdb/movie.bson
2016-12-13T06:51:23.351+0000 error: E11000 duplicate key error collection: mytestdb.movie index: _id_ dup key: { : ObjectId('584e363461eab97f1e215383') }
2016-12-13T06:51:23.351+0000 restoring indexes for collection mytestdb.movie from metadata
2016-12-13T06:51:23.353+0000 finished restoring mytestdb.movie (1 document)
2016-12-13T06:51:23.354+0000 done

Si necesita restaurar una sola base de datos a partir de las copias de seguridad realizadas, puede utilizar la siguiente opción a continuación:

Sintaxis

$mongorestore -d <dbname to restore> <DBBackup path>

Por ejemplo, necesito restaurar la base de datos «sahedb» de la copia de seguridad tomada para la base de datos en / home / sahedb. Así es como puedo lograrlo.

$# mongorestore -d sahedb /home/sahedb
2016-12-13T06:58:50.205+0000 building a list of collections to restore from /home/sahedb dir
2016-12-13T06:58:50.207+0000 reading metadata for sahedb.devops from /home/sahedb/devops.metadata.json
2016-12-13T06:58:50.207+0000 restoring sahedb.devops from /home/sahedb/devops.bson
2016-12-13T06:58:50.210+0000 restoring indexes for collection sahedb.devops from metadata
2016-12-13T06:58:50.211+0000 finished restoring sahedb.devops (0 documents)
2016-12-13T06:58:50.211+0000 done

Para restaurar una sola colección de una base de datos en MongoDB, podemos usar el siguiente comando:

Sintaxis

mongorestore -c <collection name> -d <databasename> <.bson file path for that collection>

Ejemplo:

$ mongorestore -c movie -d mytestdb /home/Collectionbackup/dump/mytestdb/movie.bson
2016-12-13T07:08:58.098+0000 checking for collection data in /home/Collectionbackup/dump/mytestdb/movie.bson
2016-12-13T07:08:58.101+0000 reading metadata for mytestdb.movie from /home/Collectionbackup/dump/mytestdb/movie.metadata.json
2016-12-13T07:08:58.102+0000 restoring mytestdb.movie from /home/Collectionbackup/dump/mytestdb/movie.bson
2016-12-13T07:08:58.167+0000 restoring indexes for collection mytestdb.movie from metadata
2016-12-13T07:08:58.168+0000 finished restoring mytestdb.movie (1 document)
2016-12-13T07:08:58.168+0000 done

He restaurado la colección «película» en «mytestdb» a partir de la copia de seguridad realizada.

Conclusión

¡Hurra! Hemos aprendido cómo administrar una base de datos en MongoDB en este tutorial. MongoDB tiene varias ventajas en comparación con otras bases de datos relacionales. Algunos de ellos son los siguientes:

  • Menos esquema
  • Sin uniones complejas.
  • Capacidad de consulta profunda.
  • Afinación.
  • Altamente escalable

¡Espero que este tutorial te sea útil! Publique sus valiosos comentarios y sugerencias al respecto.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar