Aprenda qué son MongoDB, la guía de instalación y el funcionamiento básico.
MongoDB NoSQL es tendencia más que nunca. ¿Tiene la comprensión necesaria de ello?
No se preocupe si no, lo siguiente le ayudará.
Introduction
Con el sitio web dando un cambio de paradigma hacia contenido dinámico, la demanda de la base de datos No-SQL aumentó. Esto dio lugar a numerosas bases de datos sin SQL como MongoDB.
Clasificada como una base de datos sin SQL, MongoDB es una base de datos basada en documentos que almacena los datos en forma de documentos JSON con una identificación autogenerada para cada documento.
Una base de datos No-SQL es una base de datos donde la estructura de la tabla no es fija, a diferencia de las bases de datos SQL estructuradas. MongoDB almacena los datos en forma de cadena JSON independientemente del recuento de atributos o nombres de atributos en una columna específica.
Esto permite a los desarrolladores realizar cambios rápidamente en las entidades sin necesidad de realizar cambios en el nivel de la base de datos.
Installing MongoDB
MongoDB, al igual que cualquier otra base de datos, está disponible en múltiples variantes según las necesidades de desarrollo. Las variantes se enumeran a continuación y se pueden utilizar o descargar desde este aquí
- MongoDB Atlas: base de datos como servicio
- Community Server: de uso gratuito para la comunidad de desarrolladores
- MongoDB Enterprise Edition: la versión comercial con funciones adicionales
Cada uno de estos es totalmente compatible con todos los sistemas operativos. Para empezar, la instalación de un servidor de la comunidad, descargue el archivo de instalación correspondiente según su sistema operativo.
El proceso de instalación difiere ligeramente para cada sistema operativo y, por lo tanto, revisaremos cada instalación de sistema operativo por separado.
Instalación en MacOS
Para instalar MongoDB en MacOS. Descargue el archivo .tgz que contiene los binarios necesarios. Al desarchivar el archivo, debería poder ver un montón de binarios ubicados en el papelera carpeta.
- Mueva la carpeta bin a la ubicación deseada
- Abra una terminal y cambie el directorio al directorio bin mencionado anteriormente
- Ejecute el siguiente comando para crear una base de datos en la ubicación deseada.
$ ./mongod --dbpath /path-to-desired-directory/
En el comando anterior, reemplace la ruta al directorio con la ruta deseada y el servidor se iniciará tan pronto como se ejecute el comando.
Instalación en Windows
El centro de descargas de MongoDB proporciona un ejecutable . MSI paquete para instalar MongoDB en Windows. La instalación en Windows es bastante sencilla y se puede hacer usando algunos comandos una vez que se ha descargado la configuración.
- Ejecute los siguientes comandos para instalar MongoDB en una PC / servidor con Windows.
> cd /setup-folder/
> msiexec.exe /q /i .msi ^
INSTALLLOCATION="C:Program FilesMongoDB" ^
ADDLOCAL="MonitoringTools,ImportExportTools,MiscellaneousTools"
Los comandos anteriores lo llevarán al directorio correspondiente y ejecutarán la configuración para la instalación en la ubicación especificada. Una vez instalado, debe configurar la ruta de almacenamiento de la base de datos predeterminada para MongoDB.
El siguiente comando le ayuda a configurar lo mismo.
> md dbdata
El comando anterior crea una carpeta db / data en el directorio al que apunta el símbolo del sistema actualmente. En caso de que necesite reconfigurar la base de datos nuevamente, puede usar mongod.exe con el camino de la base de datos argumento como se muestra a continuación:
>"C:Program FilesMongoDBbinmongod.exe" --dbpath d:tutorialmongodbdata
Instalación en Linux
De forma similar a las descargas de macOS, las variantes de MongoDB para Linux también están disponibles en forma de un grupo de archivos binarios archivados. El proceso para instalar MongoDB es bastante similar.
- Mueva los binarios a la ubicación deseada
- Abra el terminal en la carpeta
- Ejecute el siguiente comando con la ubicación de base de datos deseada
$ ./mongod --dbpath /path-to-desired-directory/
Creating the first collection
MongoDB almacena los datos en forma de documentos JSON. Un grupo de dicha documentación se conoce colectivamente como una colección en MongoDB. Por tanto, una colección es análoga a una tabla en una base de datos relacional mientras que un documento es análogo a un registro.
Para almacenar documentos, primero necesitamos crear una colección. Lo emocionante de un Base de datos NoSQL es que, a diferencia de la base de datos SQL, no necesita especificar los nombres de las columnas o los tipos de datos en ella.
El primer paso para crear una colección es crear una base de datos. Para crear una base de datos y conectarse a ella mediante la línea de comandos, ejecute el siguiente comando desde el directorio de inicio de instalación de MongoDB.
$ ./bin/mongo tutorial
Este comando se utiliza para iniciar la conexión de la base de datos y conectarse a la base de datos del tutorial simultáneamente. Mostrará un montón de líneas en el registro para indicar que la línea de comando se ha conectado a la base de datos MongoDB.
A continuación, se muestra una imagen de línea de comando de muestra para darle una mejor idea sobre el mismo.
- Para crear una colección, ejecute el siguiente comando:
$ > db.createCollection('firstCollection');
Así es como se crea una colección vacía. El siguiente paso es insertar datos y hacer algún procesamiento en los registros usando la línea de comando de MongoDB.
Inserting a document into the Collection
Como se discutió anteriormente, es posible insertar casi cualquier JSON en cada colección de MongoDB.
Comencemos con la inserción del primer documento JSON en el primeraColección colección creada arriba.
> db.firstCollection.insertOne({name:'Abhishek',skill:'MongoDB'});
El comando anterior inserta un solo documento JSON en el primeraColección. Lo mismo podría verificarse usando el comando que se muestra a continuación:
> db.firstCollection.find();
El comando anterior tiene múltiples usos dependiendo de la variación del find()
función. Cuando no hay argumentos especificados como es el caso con el comando anterior, recupera todos los documentos disponibles de la colección.
Puede insertar un registro más e intentar lo mismo. Al hacerlo, el resultado del comando anterior sería similar al que se muestra a continuación:
> db.firstCollection.find (); {"_id": ObjectId ("5b043a32c29a7184535e783a"), "nombre": "Abhishek", "habilidad": "MongoDB"} {"_id": ObjectId ("5b05b4f0c29a7184535e783b"), "nombre": "habilidad GeekFlare" ":" Java, MongoDB, NodeJS "}
Como puede verse, se muestran dos registros disponibles. los find()
La función podría usarse fácilmente para filtrar los documentos en función de parámetros específicos. Filtremos el documento usando el atributo de nombre.
El proceso de filtrado es simple y podría entenderse con el siguiente comando:
db.firstCollection.find ({nombre: 'Abhishek'}); {"_id": ObjectId ("5b043a32c29a7184535e783a"), "name": "Abhishek", "skill": "MongoDB"}
El filtro también se puede utilizar con varios atributos en JSON. Aunque es posible agregar cualquier número de parámetros a la consulta, la limitación de este enfoque es que solo coincide con el valor exacto de los atributos.
Filtering records using Regex
Para ejecutar un equivalente MongoDB de MySQL como cláusula, MongoDB usa expresión regular Regex es una serie de caracteres que forman un patrón a juego. Los literales regex son similares a los los usados en Javascript.
Para la colección actual, intentaremos obtener los datos haciendo coincidir un patrón para el atributo de habilidad. El siguiente comando obtiene la lista de personas con la habilidad MongoDB. Por lo tanto, obtendrá dos registros ya que ambos contienen la cadena MongoDB.
> db.firstCollection.find ({habilidad: /.* MongoDB. * /}); {"_id": ObjectId ("5b043a32c29a7184535e783a"), "nombre": "Abhishek", "habilidad": "MongoDB"} {"_id": ObjectId ("5b05b4f0c29a7184535e783b"), "nombre": "habilidad GeekFlare" ":" Java, MongoDB, NodeJS "}> db.firstCollection.find ({skill: /.* Java. * /}); {"_id": ObjectId ("5b05b4f0c29a7184535e783b"), "name": "GeekFlare", "skill": "Java, MongoDB, NodeJS"}
El código anterior muestra el resultado de dos cadenas diferentes en forma de expresión regular. La primera consulta obtiene la lista de un documento donde el atributo de habilidad contiene la palabra clave MongoDB, mientras que la otra busca personas con conocimientos de Java únicamente.
El siguiente desafío al realizar consultas basadas en criterios es realizar consultas con una condición OR o AND.
Complex queries in MongoDB
Como se desprende de los comandos anteriores, las cláusulas where de MongoDB funcionan en JSON. El proceso de combinación de condiciones también depende del propio JSON. MongoDB proporciona operadores como $ o, $ y así como $ para no realizar las operaciones de consulta relevantes.
Intentemos obtener la lista de documentos donde el atributo de nombre contiene Abhishek o la habilidad contiene Java.
> db.firstCollection.find ({$ o: [{nombre: 'Abhishek'}, {habilidad: /.* Java. * /}]}); {"_id": ObjectId ("5b043a32c29a7184535e783a"), "nombre": "Abhishek", "habilidad": "MongoDB"} {"_id": ObjectId ("5b05b4f0c29a7184535e783b"), "nombre": "Geekflare" ":" Java, MongoDB, NodeJS "}
Como puede verse, recupera ambos registros. Puede intentar usar el atributo de nombre como Geekflare y ver el cambio. Solo se mostrará el documento con tres habilidades y el nombre Geekflare.
Del mismo modo, es posible utilizar $and
operador con una matriz JSON de condiciones como se muestra arriba.
Para el siguiente conjunto de operadores, necesitaríamos crear una colección más y agregarle algunos registros usando los siguientes comandos.
> db.createCollection('studentmarks'); { "ok" : 1 } > db.studentmarks.insertMany([{name:'A',marks:20},{name:'B',marks:25},{name:'C',marks:22},{name:'D',marks:30}]); { "acknowledged" : true, "insertedIds" : [ ObjectId("5b06e7b5c29a7184535e783c"), ObjectId("5b06e7b5c29a7184535e783d"), ObjectId("5b06e7b5c29a7184535e783e"), ObjectId("5b06e7b5c29a7184535e783f") ] }
El siguiente conjunto de operadores que usaríamos son los operadores de comparación en la consulta. Para comparar valores usando criterios como menos que or mayor que or no igual a, usamos los operadores relevantes en el valor que pasamos.
A continuación se muestra un ejemplo de cómo obtener una lista de estudiantes con calificaciones superiores a 22.
db.studentmarks.find ({marcas: {$ gt: 22}}); {"_id": ObjectId ("5b06e7b5c29a7184535e783d"), "nombre": "B", "marcas": 25} {"_id": ObjectId ("5b06e7b5c29a7184535e783f"), "nombre": "D", "marcas": 30}
La $gt
aquí indica mayor que en los criterios. Por lo tanto, se muestran los documentos con marcas de más de 22. Del mismo modo, hay otros operadores que se pueden utilizar. Se enumeran a continuación.
Operador | Utilice la herramienta | Ejemplo |
---|---|---|
$ eq | Comprueba si el valor es igual | {marcas: {$ eq: 20}} |
$ lt | Compruebe si el valor es menor que | {marcas: {$ lt: 20}} |
$ gte | Compruebe si el valor es mayor o igual que | {marcas: {$ gte: 22}} |
$ lte | Compruebe si el valor es menor o igual a | {marcas: {$ lte: 22}} |
$ ne | Compruebe si el valor no es igual a | {marcas: {$ ne: 22}} |
$ en | Verifique si el valor es igual a cualquiera de los valores de la matriz | {marcas: {$ en: [20,22]}} |
$ nin | Compruebe si el valor no es igual a ningún valor de la matriz | {marcas: {$ nin: [22,25]}} |
Explora más Comandos de MongoDB aquí.
GUI for MongoDB
En la discusión anterior, hemos usado una línea de comando para ejecutar nuestras consultas en MongoDB.
El uso de la línea de comando puede ser un desafío cuando se trata de consultas complejas y una gran cantidad de datos. Para que sea más fácil ver los datos y ejecutar las consultas, MongoDB le proporciona una excelente herramienta GUI llamada MongoDB Compass.
La brújula MongoDB se puede descargar fácilmente desde el Sitio de descargas de MongoDB. Una vez que haya descargado e instalado MongoDB Compass, inicie la aplicación y aparecerá una pantalla similar a la que se muestra a continuación.
Teniendo en cuenta que tiene el servidor MongoDB en funcionamiento, haga clic en conectar con los detalles predeterminados. Debe iniciar sesión y mostrar la lista de bases de datos disponibles.
Haga clic en la base de datos del tutorial para ver la lista de colecciones en el tutorial db. Como se muestra a continuación, muestra la lista de colecciones disponibles en el tutorial db.
Al hacer clic en la colección, muestra la lista de documentos con los controles necesarios para filtrar los registros usando un JSON, así como la facilidad para ver los documentos en formato JSON o formato tabular según nuestra conveniencia.
La GUI también simplifica la adición de un documento. Todo lo que necesita hacer es hacer clic en el botón Insertar documento en la pantalla que se muestra a continuación. Abre un pequeño cuadro de diálogo que solicita los detalles del documento con una identificación de documento generada automáticamente.
La GUI simplifica muchas operaciones que pueden ser difíciles de realizar utilizando la interfaz de línea de comandos de MongoDB.
Hay más Cliente NoSQL puedes explorar.
Conclusión
Capturamos la esencia de NoSQL con una variedad de ejemplos y entendimos la instalación, cómo los documentos son diferentes en comparación con un registro de base de datos relacional típico. También puede consultar este aprender MongoDB desde cero curso por Internet.
Y, si eres un desarrollador, puede que te interese esta.