MongoDB Tutorial
Empezando con MongoDB
Buscar..
Observaciones
- Los datos en el mundo comenzaron a crecer enormemente después de que las aplicaciones móviles ingresaran al mercado. Esta enorme cantidad de datos se volvió casi imposible de manejar con la base de datos relacional tradicional: SQL. Las bases de datos NoSQL se introducen para manejar aquellos datos en los que se obtiene mucha más flexibilidad, como el número variable de columnas para cada información.
- MongoDB es una de las principales bases de datos NoSQL. Cada colección contiene una serie de documentos JSON. Cualquier modelo de datos que se pueda expresar en un documento JSON se puede almacenar fácilmente en MongoDB.
- MongoDB es una base de datos cliente-servidor. El servidor normalmente se ejecuta con el archivo binario
mongod
y el cliente se ejecuta conmongo
. - No hay una operación de unión en MongoDB antes de v.3.2, por varias razones filosóficas y pragmáticas . Pero el shell Mongo admite javascript, por lo que si $ búsqueda no está disponible, uno puede simular operaciones de unión en documentos en javascript antes de insertar.
- Para ejecutar una instancia en un entorno de producción, se recomienda encarecidamente seguir la Lista de verificación de operaciones .
Versiones
Versión | Fecha de lanzamiento |
---|---|
3.4 | 2016-11-29 |
3.2 | 2015-12-08 |
3.0 | 2015-03-03 |
2.6 | 2014-04-08 |
2.4 | 2013-03-19 |
2.2 | 2012-08-29 |
2.0 | 2011-09-12 |
1.8 | 2011-03-16 |
1.6 | 2010-08-31 |
1.4 | 2010-03-25 |
1.2 | 2009-12-10 |
Instalación
Para instalar MongoDB, siga los pasos a continuación:
Para Mac OS:
- Hay dos opciones para Mac OS: instalación manual o homebrew .
- Instalación con homebrew :
- Escriba el siguiente comando en el terminal:
$ brew install mongodb
- Escriba el siguiente comando en el terminal:
- Instalación manual:
Descarga la última versión aquí . Asegúrese de que está descargando el archivo apropiado, compruebe especialmente si su tipo de sistema operativo es de 32 bits o de 64 bits. El archivo descargado está en formato
tgz
.Ir al directorio donde se descarga este archivo. Luego escribe el siguiente comando:
$ tar xvf mongodb-osx-xyz.tgz
En lugar de
xyz
, habría alguna información sobre la versión y el tipo de sistema. La carpeta extraída tendría el mismo nombre que el archivotgz
. Dentro de la carpeta, habría una subcarpeta llamadabin
que contendría varios archivos binarios junto conmongod
ymongo
.Por defecto el servidor mantiene los datos en la carpeta
/data/db
. Entonces, tenemos que crear ese directorio y luego ejecutar el servidor con los siguientes comandos:$ sudo bash # mkdir -p /data/db # chmod 777 /data # chmod 777 /data/db # exit
Para iniciar el servidor, se debe dar el siguiente comando desde la ubicación actual:
$ ./mongod
Se iniciaría el servidor en el puerto 27017 por defecto.
Para iniciar el cliente, se debe abrir una nueva terminal con el mismo directorio que antes. Luego, el siguiente comando iniciaría el cliente y se conectaría al servidor.
$ ./mongo
Por defecto se conecta a la base de datos de
test
. Si ves la línea comoconnecting to: test
. Entonces usted ha instalado con éxito MongoDB. Felicidades Ahora, puedes probar Hello World para tener más confianza.
Para ventanas:
Descarga la última versión aquí . Asegúrese de que está descargando el archivo apropiado, compruebe especialmente si su tipo de sistema operativo es de 32 bits o de 64 bits.
El archivo binario descargado tiene extensión
exe
. Ejecutarlo. Se le pedirá un asistente de instalación.Haga clic en siguiente .
Acepte el acuerdo de licencia y haga clic en Siguiente .
Seleccione Instalación completa .
Haga clic en Instalar . Puede que aparezca una ventana para pedir permiso al administrador. Haga clic en Sí .
Después de la instalación, haga clic en Finalizar .
Ahora, el mongodb está instalado en la ruta
C:/Program Files/MongoDB/Server/3.2/bin
. En lugar de la versión 3.2, podría haber alguna otra versión para su caso. El nombre de la ruta se cambiaría en consecuencia.bin
directoriobin
contiene varios archivos binarios junto conmongod
ymongo
. Para ejecutarlo desde otra carpeta, puede agregar la ruta en la ruta del sistema. Para hacerlo:- Haga clic derecho en Mi PC y seleccione Propiedades .
- Haga clic en Configuración avanzada del sistema en el panel izquierdo.
- Haga clic en Variables de entorno ... en la pestaña Opciones avanzadas .
- Seleccione Ruta en la sección de variables del sistema y haga clic en Editar ....
- Antes de Windows 10, agregue un punto y coma y pegue la ruta indicada anteriormente. Desde Windows 10, hay un botón Nuevo para agregar una nueva ruta.
- Haga clic en s para guardar los cambios.
Ahora, cree una carpeta llamada
data
con una subcarpeta llamadadb
en la que desea ejecutar el servidor.Iniciar el símbolo del sistema desde su. Cambiando la ruta en cmd o haciendo clic en Abrir ventana de comando aquí, que sería visible después de hacer clic derecho en el espacio vacío de la carpeta GUI presionando las teclas Mayús y Ctrl juntas.
Escriba el comando para iniciar el servidor:
> mongod
Se iniciaría el servidor en el puerto 27017 por defecto.
Abra otro símbolo del sistema y escriba lo siguiente para iniciar el cliente:
> mongo
Por defecto se conecta a la base de datos de
test
. Si ves la línea comoconnecting to: test
. Entonces usted ha instalado con éxito MongoDB. Felicidades Ahora, puedes probar Hello World para tener más confianza.
Para Linux: casi lo mismo que Mac OS, excepto que se necesita un comando equivalente.
- Para las distribuciones basadas en Debian (usando
apt-get
):Importar clave de repositorio MongoDB.
$ sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927 gpg: Total number processed: 1\ gpg: imported: 1 (RSA: 1)
Agregue repositorio a la lista de paquetes en Ubuntu 16.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
en Ubuntu 14.04 .
$ echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
Actualizar la lista de paquetes.
$ sudo apt-get update
Instalar MongoDB.
$ sudo apt-get install mongodb-org
- Para distribuciones basadas en Red Hat (usando
yum
):Usa un editor de texto que prefieras.
$ vi /etc/yum.repos.d/mongodb-org-3.4.repo
Pega el siguiente texto.
[mongodb-org-3.4] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
Actualizar la lista de paquetes.
$ sudo yum update
Instalar MongoDB
$ sudo yum install mongodb-org
- Para las distribuciones basadas en Debian (usando
Hola Mundo
Después del proceso de instalación, las siguientes líneas deben ingresarse en mongo shell (terminal de cliente).
> db.world.insert({ "speech" : "Hello World!" });
> cur = db.world.find();x=cur.next();print(x["speech"]);
Hola Mundo!
Explicación:
- En la primera línea, hemos insertado un documento emparejado
{ key : value }
en latest
base de datos predeterminada y en la colección denominadaworld
. - En la segunda línea recuperamos los datos que acabamos de insertar. Los datos recuperados se mantienen en una variable de javascript llamada
cur
. Luego, mediante la funciónnext()
, recuperamos el primer y único documento y lo guardamos en otra variable js llamadax
. Luego imprimió el valor del documento proporcionando la clave.
Terminos Complementarios
Términos SQL | Términos de MongoDB |
---|---|
Base de datos | Base de datos |
Mesa | Colección |
Entidad / Fila | Documento |
Columna | Clave / Campo |
Unirse a la mesa | Documentos incrustados |
Clave primaria | Clave principal ( Clave predeterminada _id proporcionada por mongodb en sí) |
Ejecución de un archivo JavaScript en MongoDB
./mongo localhost:27017/mydb myjsfile.js
Explicación: esta operación ejecuta el script myjsfile.js
en un shell mongo
que se conecta a la base de datos mydb
en la instancia mongod
accesible a través de la interfaz localhost
en el puerto 27017
. localhost:27017
no es obligatorio ya que este es el puerto predeterminado que usa mongodb
.
Además, puede ejecutar un archivo .js
desde la consola de mongo
.
>load("myjsfile.js")
Haciendo la salida de encontrar legible en shell
Agregamos tres registros a nuestra prueba de colección como:
> db.test.insert({"key":"value1","key2":"Val2","key3":"val3"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value2","key2":"Val21","key3":"val31"})
WriteResult({ "nInserted" : 1 })
> db.test.insert({"key":"value3","key2":"Val22","key3":"val33"})
WriteResult({ "nInserted" : 1 })
Si los vemos a través de encontrar, se verán muy feos.
> db.test.find()
{ "_id" : ObjectId("5790c5cecae25b3d38c3c7ae"), "key" : "value1", "key2" : "Val2
", "key3" : "val3" }
{ "_id" : ObjectId("5790c5d9cae25b3d38c3c7af"), "key" : "value2", "key2" : "Val2
1", "key3" : "val31" }
{ "_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"), "key" : "value3", "key2" : "Val2
2", "key3" : "val33" }
Para solucionar esto y hacer que sean legibles, use la función pretty ().
> db.test.find().pretty()
{
"_id" : ObjectId("5790c5cecae25b3d38c3c7ae"),
"key" : "value1",
"key2" : "Val2",
"key3" : "val3"
}
{
"_id" : ObjectId("5790c5d9cae25b3d38c3c7af"),
"key" : "value2",
"key2" : "Val21",
"key3" : "val31"
}
{
"_id" : ObjectId("5790c5e9cae25b3d38c3c7b0"),
"key" : "value3",
"key2" : "Val22",
"key3" : "val33"
}
>
Comandos básicos en mongo shell
Mostrar todas las bases de datos disponibles:
show dbs;
Seleccione una base de datos particular para acceder, por ejemplo, mydb
. Esto creará mydb
si aún no existe:
use mydb;
Muestre todas las colecciones en la base de datos (asegúrese de seleccionar una, vea arriba):
show collections;
Muestra todas las funciones que se pueden utilizar con la base de datos:
db.mydb.help();
Para verificar su base de datos seleccionada actualmente, use el comando db
> db
mydb
db.dropDatabase()
comando db.dropDatabase()
se usa para eliminar una base de datos existente.
db.dropDatabase()