Geekflare cuenta con el apoyo de nuestra audiencia. Podemos ganar comisiones de afiliados comprando enlaces en este sitio.
Comparte en:

Comenzando con MongoDB para principiantes

mongodb
Escáner de seguridad de aplicaciones web Invicti – la única solución que ofrece verificación automática de vulnerabilidades con Proof-Based Scanning™.

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.

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.

Screen-Shot-2018-05-22 9.07.12-en-PM-

  • 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.

MongoDBBrújula

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.

Screen-Shot-2018-05-26-at-12.49.55-AM-e1527276073795

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.

Documentos de MongoDB

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.

Gracias a nuestros patrocinadores
Más lecturas excelentes en la base de datos
Impulse su negocio
Algunas de las herramientas y servicios para ayudar a que su negocio crezca.
  • Invicti utiliza Proof-Based Scanning™ para verificar automáticamente las vulnerabilidades identificadas y generar resultados procesables en cuestión de horas.
    Prueba Invicti
  • Web scraping, proxy residencial, administrador de proxy, desbloqueador web, rastreador de motores de búsqueda y todo lo que necesita para recopilar datos web.
    Prueba Brightdata
  • Semrush es una solución de marketing digital todo en uno con más de 50 herramientas en SEO, redes sociales y marketing de contenido.
    Prueba Semrush
  • Intruder es un escáner de vulnerabilidades en línea que encuentra debilidades de ciberseguridad en su infraestructura, para evitar costosas filtraciones de datos.
    Intente Intruder