MongoDB es una base de datos NoSQL. Bajo el NoSQL Paraguas ponemos todas aquellas bases de datos que no utilizan el lenguaje SQL para la consulta de los datos.
Características clave de MongoDB
MongoDB es una base de datos muy compatible con JavaScript. Expone una API de JavaScript que podemos usar para crear bases de datos y colecciones de objetos (llamados documentos ).
Es sin esquema , lo que significa que no necesita predefinir una estructura para los datos antes de almacenarlos.
En MongoDB puede almacenar cualquier objeto sin tener que preocuparse por los campos particulares que componen este objeto y cómo almacenarlos. Le dices a MongoDB que almacene ese objeto.
Los datos se almacenan en un formato similar a JSON, pero mejorado para permitir almacenar más que solo tipos de datos básicos.
Instalación
Sigamos adelante e instalemos MongoDB. Puede usar uno de los muchos proveedores de nube que ofrecen acceso a una instancia de MongoDB, pero para aprender, lo instalaremos nosotros mismos.
Uso una Mac, por lo que las instrucciones de instalación de este tutorial se refieren a ese sistema operativo.
Abre la terminal y ejecuta:
brew tap mongodb/brew
brew install mongodb-community
Eso es todo.
Las instrucciones no fueron demasiado largas ni complicadas, suponiendo que sepa cómo usar la terminal y cómo instalar Homebrew.
La instalación nos dice esto:
To have launchd start mongodb now and restart at login:
brew services start mongodb-community
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
Puede elegir iniciar MongoDB una vez y tenerlo ejecutándose para siempre como un servicio en segundo plano en su computadora (lo que prefiero), o puede ejecutarlo justo cuando lo necesite, ejecutando el último comando.
La configuración predeterminada para MongoDB es esta:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
Los registros se almacenan en /usr/local/var/log/mongodb/mongo.log
y la base de datos se almacena en /usr/local/var/mongodb
.
Por defecto no hay control de acceso, cualquiera puede leer y escribir en la base de datos.
La concha Mongo
La mejor manera de experimentar con MongoDB y comenzar a interactuar con él es ejecutando mongo
programa, que inicia el shell de MongoDB.
Ahora puede ingresar cualquier comando que Mongo entienda.
Crear una base de datos
Cuando comienza, Mongo crea una base de datos llamada test
. Ejecutar db
en el shell para decirle el nombre de la base de datos activa
Para cambiar la base de datos, simplemente escribe use newname
y el newname
la base de datos se creará instantáneamente y el shell cambiará para usarla.
Usar show databases
para listar las bases de datos disponibles:
Como puede ver, el something
la base de datos no está en la lista, solo porque aún no hay una colección en ella. Vamos a crear uno.
Colecciones
En MongoDB, una colección es el equivalente de una tabla de base de datos SQL.
Crea una colección en la base de datos actual usando db.createCollection()
dominio. El primer argumento es el nombre de la base de datos y puede pasar un objeto de opciones como segundo parámetro.
Una vez que lo haga, show databases
listará la nueva base de datos y show collections
enumerará la colección.
También puede crear una nueva colección usándola como una propiedad de db
objeto y llamando a insert()
para agregar un objeto a la colección:
db.dogs.insert({ name: 'Roger' })
Listar objetos en una coleccion
Para mostrar los objetos agregados a una colección, use find()
método:
Como puede ver, hay un _id
adicional propiedad para el registro que agregamos. MongoDB lo genera automáticamente para nosotros.
Ahora, agrega más perros:
db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })
Llamando a db.dogs.find()
nos dará todas las entradas, mientras que podemos pasar un parámetro para filtrar y recuperar una entrada específica, por ejemplo con db.dogs.find({name: 'Roger'})
:
El find()
El método devuelve un cursor sobre el que necesita iterar.
Hay otro método que es útil cuando sabe que solo obtendrá un registro, que es findOne()
, y se usa de la misma manera. Si varios registros coinciden con una consulta, solo devolverá el primero.
Actualización de registros
Para actualizar un registro puede usar update()
método en una colección:
Eliminar registros
Puede eliminar un registro llamando a remove()
método en una colección, pasando un objeto para ayudar a identificarlo:
Para eliminar todas las entradas de una colección, pase un objeto vacío:
db.dogs.remove({})