MongoDB: Primeros pasos

Introducción a MongoDB  

Terminologías :  se puede llamar a una base de datos
MongoDB como contenedor para todas las colecciones. 

  • La colección es un montón de documentos MongoDB. Es similar a las tablas en RDBMS.
  • El documento está hecho de campos. Es similar a una tupla en RDBMS, pero aquí tiene un esquema dinámico. Los documentos de la misma colección no necesitan tener el mismo conjunto de campos

Empezando 

Después de instalar MongoDB, puede ver todos los archivos instalados dentro de C:\ProgramFiles\MongoDB\ (ubicación predeterminada). En el directorio C:\Program Files\MongoDB\Server\3.2\bin, hay un montón de ejecutables y una breve descripción de ellos sería: 

mongo: The Command Line Interface to interact with the db.
mongod: This is the database. Sets up the server.
mongodump: It dumps out the Binary of the Database(BSON)
mongoexport: Exports the document to Json, CSV format
mongoimport: To import some data into the DB.
mongorestore: to restore anything that you’ve exported.
mongostat: Statistics of databases

Ahora, puede comenzar a ejecutar MongoDB Server. Inicie un símbolo del sistema y vaya a la ubicación donde están instalados los ejecutables de MongoDB (C:\Program Files\MongoDB\Server\3.2\bin\ pero esta ruta podría cambiar en el futuro). Simplemente escriba «mongod» y aparecerá un error diciendo que la ruta \data\db no existe: 

image1

Esto significa que no se encontró la ruta predeterminada de almacenamiento C:\data\db. Entonces puede crear un directorio C:\data\db por su cuenta o con el comando mkdir. También puede cambiar la ruta predeterminada con el interruptor –dbpath <ruta> con el comando “mongod”. 
Después de crear este directorio, ejecute el comando «mongod» nuevamente e iniciará el servidor en el puerto 27017.  

image2

Ahora, necesitamos iniciar nuestro cliente. Entonces, abra otra terminal y cambie el directorio a la ruta de MongoDB. Simplemente escriba «mongo» y su cliente estará activo, tratando de conectarse al servidor.  

image3

Este sería el CLI para interactuar y administrar las bases de datos. Este shell es una especie de consola JS. Puede probar diferentes comandos JS para comprobarlo. Como nuestro cliente está activo, ahora podemos comenzar a trabajar en la base de datos. Podemos ver que la base de datos en uso se llama «prueba». Puede ver las bases de datos usando «ver dbs» y cambiar a otras bases de datos como «local» escribiendo «use <dbname>». 

Tenga en cuenta que no hay colecciones existentes. Esto se puede ver escribiendo el comando «mostrar colecciones». 

Comencemos agregando algunos datos a nuestra base de datos. Podemos crear una colección con el método db.createCollection(name, { size : …, capped : …, max : … } ) 

Pero hemos creado un archivo json generado aleatoriamente (de datos de empleados) y lo importaríamos a nuestra base de datos escribiendo  

mongoimport --jsonArray --db test --collection employee_data < 
C:\mongoJson\employee_data.json

Esto importaría el documento json de datos del empleado al que se refiere la ruta proporcionada en la colección denominada «employee_data» de la base de datos «test». 

image4

Ahora, para asegurarse de que la colección se importe, puede escribir «mostrar colecciones» en el shell. Puede usar métodos como count(), find(), findOne() para realizar algunas consultas muy básicas con su documento. 
Puede ver que en cada documento hay un campo llamado «_id» que no se proporcionó en los datos importados. La razón es que MongoDB proporciona un «_id» predeterminado (si no se proporciona explícitamente) que es un número hexadecimal de 12 bytes que asegura la unicidad de cada documento. Incluso puede cambiar este campo «_id», pero no se recomienda. 

image5

Indexación: también puede usar la indexación si su consulta devuelve más de un documento. Por ejemplo, db.employee_data.find() devuelve todos los documentos de la colección, pero si solo desea el séptimo, simplemente haga db.employee_data.find()[6] y devolverá el documento específico. [Nota: la indexación comienza desde 0 aquí]. 

Proyecciones: digamos que para una consulta desea solo algunos detalles específicos y no todo el conjunto de detalles en el documento. Puedes usar proyecciones para esto. Después de su objeto de consulta, simplemente haga que los campos necesarios sean 1 y los demás se asumirán como 0 automáticamente. Pero recuerde que siempre se supone que el campo «_id» es 1 implícitamente y si no desea ver el campo «_id» de aspecto feo, debe decir esto en su proyección por «_id: 0» 

Consultas: 

1. Encuentre el número de empleados con la empresa «GEEKS FOR GEEKS» 

> db.employee_data.find( { company= “GEEKS FOR GEEKS” } ).count()

2. Mostrar el detalle de todos los empleados llamados «Sandeep Jain»  

> db.employee_data.find( { name: “Sandeep Jain” }

Aquí, aparecerán todos los documentos que coincidan con el nombre de pila. 

3. Muestre la edad, el sexo y el correo electrónico, pero no «_id» del empleado llamado «Harshit Gupta». (Suponga que solo hay un empleado llamado Harshit Gupta). Uso de proyecciones 

> db.employee_data.find( { name: “Harshit Gupta” }, { _id:0, age:1, gender:1, email:1 } )

También podemos almacenar el resultado de las consultas en variables y luego hacer consultas interesantes con ellas también. 

4. Escriba en letra de imprenta el nombre de todas las empleadas.  

> var femaleEmp = db.employee_data.find( { gender: “female” } )
for ( var i = 0 ; i < femaleEmp.count() ; i++){
print ( femaleEmp[i].name)
} 
> db.employee_data.find( { gender: "female" }, { _id:0, name:1 } )

Tenga en cuenta que la primera solución solo imprime los nombres, mientras que la segunda los imprime en formato de objeto. 

Article By Harshit Gupta
Harshit Gupta, con sede en Kolkata, es un bloguero activo que tiene un gran interés en escribir sobre algoritmos, blogs técnicos, historias y experiencias personales de la vida. Además de ser un apasionado de la escritura, también le encanta programar y bailar. Actualmente trabaja en AMD y es colaborador activo del blog GeeksforGeeks. Puede ponerse en contacto con él en prouditguptablog.wordpress.com

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
 

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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