
MongoDB es una rica base de datos NoSQL orientada a documentos.
Si eres un principiante completo en NoSQL, te recomiendo que eches un vistazo rápido a mi artículo sobre NoSQL publicado anteriormente.
Hoy, quería compartir algunas de las cosas básicas sobre los comandos de MongoDB, como consultar, filtrar datos, eliminar, actualizar, etc.
Bien, basta de charlas, ¡manos a la obra!
Configuración
Para trabajar con MongoDB, primero debe instalar MongoDB en su computadora. Para hacer esto, visite el centro de descargas oficial y descargue la versión para su sistema operativo específico. Aquí, he usado Windows.
Después de descargar la configuración del servidor de la comunidad MongoDB, pasará por un proceso de instalación "siguiente tras siguiente". Una vez hecho esto, diríjase a la unidad C en la que instaló MongoDB. Vaya a los archivos de programa y seleccione el directorio MongoDB.
C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin
En el directorio bin, encontrará un par de archivos ejecutables interesantes.
- mongod
- mongo
Hablemos de estos dos archivos.
mongod significa "Mongo Daemon". mongod es un proceso en segundo plano utilizado por MongoDB. El propósito principal de mongod es administrar todas las tareas del servidor MongoDB. Por ejemplo, aceptar solicitudes, responder al cliente y administrar la memoria.
mongo es un shell de línea de comandos que puede interactuar con el cliente (por ejemplo, administradores de sistemas y desarrolladores).
Ahora veamos cómo podemos poner este servidor en funcionamiento. Para hacer eso en Windows, primero debe crear un par de directorios en su unidad C. Abra su símbolo del sistema dentro de su unidad C y haga lo siguiente:
C:\> mkdir data/dbC:\> cd dataC:\> mkdir db
El propósito de estos directorios es que MongoDB requiere una carpeta para almacenar todos los datos. La ruta del directorio de datos predeterminado de MongoDB está /data/db
en la unidad. Por tanto, es necesario que proporcionemos esos directorios como tal.
Si inicia el servidor MongoDB sin esos directorios, probablemente verá el siguiente error:

Después de crear esos dos archivos, diríjase nuevamente a la carpeta bin que tiene en su directorio mongodb y abra su shell dentro de ella. Ejecute el siguiente comando:
mongod
¡Voilà! ¡Ahora nuestro servidor MongoDB está en funcionamiento! ?
Para trabajar con este servidor, necesitamos un mediador. Así que abra otra ventana de comando dentro de la carpeta de enlace y ejecute el siguiente comando:
mongo
Después de ejecutar este comando, navegue hasta el shell en el que ejecutamos el comando mongod (que es nuestro servidor). Verá un mensaje de 'conexión aceptada' al final. ¡Eso significa que nuestra instalación y configuración es exitosa!
Simplemente ejecute en el shell mongo:
db

Configurar variables de entorno
Para ahorrar tiempo, puede configurar sus variables de entorno. En Windows, esto se hace siguiendo los siguientes menús:
Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit
¡Simplemente copie la ruta de nuestra carpeta bin y presione OK! En mi caso esC:\Program Files\MongoDB\Server\4.0\bin
¡Ahora estás listo!
Trabajando con MongoDB
Hay un montón de GUI (interfaz gráfica de usuario) para trabajar con el servidor MongoDB, como MongoDB Compass, Studio 3T, etc.
Proporcionan una interfaz gráfica para que pueda trabajar fácilmente con su base de datos y realizar consultas en lugar de utilizar un shell y escribir consultas manualmente.
Pero en este artículo usaremos el símbolo del sistema para hacer nuestro trabajo.
Ahora es el momento de sumergirnos en los comandos de MongoDB que le ayudarán a utilizarlos en sus proyectos futuros.
- Abra su símbolo del sistema y escriba
mongod
para iniciar el servidor MongoDB.
2. Abra otro caparazón y escriba mongo
para conectarse al servidor de la base de datos MongoDB.
1. Encontrar la base de datos actual en la que se encuentra
db

Este comando mostrará la base de datos actual en la que se encuentra. test
Es la base de datos inicial que viene por defecto.
2. Listado de bases de datos
show databases

Actualmente tengo cuatro bases de datos. Ellos son: CrudDB
, admin
, config
y local
.
3. Ir a una base de datos en particular
use

Here I’ve moved to the local
database. You can check this if you try the command db
to print out the current database name.
4. Creating a Database
With RDBMS (Relational Database Management Systems) we have Databases, Tables, Rows and Columns.
But in NoSQL databases, such as MongoDB, data is stored in BSON format (a binary version of JSON). They are stored in structures called “collections”.
In SQL databases, these are similar to Tables.


Alright, let’s talk about how we create a database in the mongo shell.
use
Wait, we had this command before! Why am I using it again?!
In MongoDB server, if your database is present already, using that command will navigate into your database.
But if the database is not present already, then MongoDB server is going to create the database for you. Then, it will navigate into it.
After creating a new database, running the show database
command will not show your newly created database. This is because, until it has any data (documents) in it, it is not going to show in your db list.
5. Creating a Collection
Navigate into your newly created database with the use
command.
Actually, there are two ways to create a collection. Let’s see both.
One way is to insert data into the collection:
db.myCollection.insert({"name": "john", "age" : 22, "location": "colombo"})
This is going to create your collection myCollection
even if the collection does not exist. Then it will insert a document with name
and age
. These are non-capped collections.
The second way is shown below:
2.1 Creating a Non-Capped Collection
db.createCollection("myCollection")
2.2 Creating a Capped Collection
db.createCollection("mySecondCollection", {capped : true, size : 2, max : 2})
In this way, you’re going to create a collection without inserting data.
A “capped collection” has a maximum document count that prevents overflowing documents.
In this example, I have enabled capping, by setting its value to true
.
The size : 2
means a limit of two megabytes, and max: 2
sets the maximum number of documents to two.
Now if you try to insert more than two documents to mySecondCollection
and use the find
command (which we will talk about soon), you’ll only see the most recently inserted documents. Keep in mind this doesn’t mean that the very first document has been deleted — it is just not showing.
6. Inserting Data
We can insert data to a new collection, or to a collection that has been created before.

There are three methods of inserting data.
insertOne()
is used to insert a single document only.insertMany()
is used to insert more than one document.insert()
is used to insert documents as many as you want.
Below are some examples:
- insertOne()
db.myCollection.insertOne( { "name": "navindu", "age": 22 } )
- insertMany()
db.myCollection.insertMany([ { "name": "navindu", "age": 22 }, { "name": "kavindu", "age": 20 }, { "name": "john doe", "age": 25, "location": "colombo" } ])
The insert()
method is similar to the insertMany()
method.
Also, notice we have inserted a new property called location
on the document for John Doe
. So if youusefind
, then you’ll see only forjohn doe
the location
property is attached.
This can be an advantage when it comes to NoSQL databases such as MongoDB. It allows for scalability.

7. Querying Data
Here’s how you can query all data from a collection:
db.myCollection.find()

If you want to see this data in a cleaner, way just add .pretty()
to the end of it. This will display document in pretty-printed JSON format.
db.myCollection.find().pretty()

Wait...In these examples did you just notice something like _id
? How did that get there?
Well, whenever you insert a document, MongoDB automatically adds an _id
field which uniquely identifies each document. If you do not want it to display, just simply run the following command
db.myCollection.find({}, _id: 0).pretty()
Next, we’ll look at filtering data.
If you want to display some specific document, you could specify a single detail of the document which you want to be displayed.
db.myCollection.find( { name: "john" } )

Let’s say you want only to display people whose age is less than 25. You can use $lt
to filter for this.
db.myCollection.find( { age : {$lt : 25} } )
Similarly, $gt
stands for greater than, $lte
is “less than or equal to”, $gte
is “greater than or equal to” and $ne
is “not equal”.
8. Updating documents
Let’s say you want to update someone’s address or age, how you could do it? Well, see the next example:
db.myCollection.update({age : 20}, {$set: {age: 23}})
The first argument is the field of which document you want to update. Here, I specify age
for the simplicity. In production environment, you could use something like the _id
field.
It is always better to use something like _id
to update a unique row. This is because multiple fields can have same age
and name
. Therefore, if you update a single row, it will affect all rows which have same name and age.

If you update a document this way with a new property, let’s say location
for example, the document will be updated with the new attribute. And if you do a find
, then the result will be:

If you need to remove a property from a single document, you could do something like this (let’s say you want age
to be gone):
db.myCollection.update({name: "navindu"}, {$unset: age});
9. Removing a document
As I have mentioned earlier, when you update or delete a document, you just need specify the _id
not just name
, age
, location
.
db.myCollection.remove({name: "navindu"});
10. Removing a collection
db.myCollection.remove({});
Note, this is not equal to the drop()
method. The difference is drop()
is used to remove all the documents inside a collection, but the remove()
method is used to delete all the documents along with the collection itself.
Logical Operators
MongoDB provides logical operators. The picture below summarizes the different types of logical operators.


Let’s say you want to display people whose age is less than 25, and also whose location is Colombo. What we could do?
We can use the $and
operator!
db.myCollection.find({$and:[{age : {$lt : 25}}, {location: "colombo"}]});
Last but not least, let’s talk aboutaggregation.
Aggregation
A quick reminder on what we learned about aggregation functions in SQL databases:

Simply put, aggregation groups values from multiple documents and summarizes them in some way.
Imagine if we had male and female students in a recordBook
collection and we want a total count on each of them. In order to get the sum of males and females, we could use the $group
aggregate function.
db.recordBook.aggregate([ { $group : {_id : "$gender", result: {$sum: 1}} } ]);

Wrapping up
So, we have discussed the basics of MongoDB that you might need in the future to build an application. I hope you enjoyed this article – thanks for reading!
If you have any queries regarding this tutorial, feel free to comment out in the comment section below or contact me on Facebook or Twitter or Instagram.
See you guys in the next article! ❤️ ✌?
Link to my previous article: NoSQL