MongoDB es una base de datos, la parte de la aplicación responsable de almacenar y recuperar información.
MongoDB es una base de datos NoSQL. Bajo laNoSQLParaguas ponemos todas aquellas bases de datos que no utilizan el lenguaje SQL para consultar 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 (llamadodocumentos).
Essin esquema, lo que significa que no es necesario 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 dice 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 e instalemos MongoDB. Puede usar uno de los muchos proveedores en la nube que ofrecen acceso a una instancia de MongoDB, pero para aprender, lo instalaremos nosotros mismos.
Utilizo una Mac, por lo que las instrucciones de instalación de este tutorial se refieren a ese sistema operativo.
Abra la terminal y ejecute:
brew tap mongodb/brew
brew install mongodb-community
Eso es.
Las instrucciones no fueron demasiado largas ni complicadas, suponiendo que sepa cómo usar el terminal ycó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.confYou can choose to either launch MongoDB once and have it running forever as a background service in your computer (the thing I prefer), or you can run it just when you need it, by running the latter command.
The default configuration for MongoDB is this:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1Logs are stored in /usr/local/var/log/mongodb/mongo.log
and the database is stored in /usr/local/var/mongodb
.
By default there is no access control, anyone can read and write to the database.
The Mongo Shell
The best way to experiment with MongoDB and starting to interact with it is by running the mongo
program, which starts the MongoDB shell.

You can now enter any command that Mongo understands.
Create a database
When you start, Mongo creates a database called test
. Run db
in the shell to tell you the name of the active database

To change the database, just write use newname
and the newname
database will be instantly created and the shell switches to using that.

Use show databases
to list the available databases:

As you can see, the something
database is not listed, just because there is no collection yet in it. Let’s create one.
Collections
In MongoDB, a collection is the equivalent of a SQL database table.
You create a collection on the current database by using the db.createCollection()
command. The first argument is the database name, and you can pass an options object as a second parameter.

Once you do so, show databases
will list the new database, and show collections
will list the collection.

You can also create a new collection by using it as a property of the db
object, and calling insert()
to add an object to the collection:
db.dogs.insert({ name: 'Roger' })

Listing objects in a collection
To show the objects added to a collection, use the find()
method:

As you can see there is an additional _id
property for the record we added. That’s automatically generated for us by MongoDB.
Now, add more dogs:
db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })
Calling db.dogs.find()
will give us all the entries, while we can pass a parameter to filter and retrieve a specific entry, for example with db.dogs.find({name: 'Roger'})
:

The find()
method returns a cursor you need to iterate on.
There is another method which is handy when you know you’ll only get one record, which is findOne()
, and it’s used in the same way. If multiple records match a query, it will just return the first one.

Updating records
To update a record you can use the update()
method on a collection:

Removing records
You can remove a record calling the remove()
method on a collection, passing an object to help identify it:

To remove all the entries from a collection, pass an empty object:
db.dogs.remove({})
More database tutorials:
- The MongoDB basics tutorial
- How MongoDB is different from a SQL database
- Information systems, data and information
- Data models
- Introduction to the ER Data Model
- The Relational Model
- Relational Algebra
- Relational Databases
- What is a Database? And a DBMS?
- Introduction to SQL
- How to install PostgreSQL on macOS
- Do you always need a database for your app?
- How to install SQLite on macOS
- Introduction to PostgreSQL
- PostgreSQL User Permissions
- How to list all users in PostgreSQL
- How to switch database using PostgreSQL
- How to list all databases using PostgreSQL
- How to list tables in the current database using PostgreSQL
- How to install MySQL on macOS
- Creating a user on MySQL
- PostgreSQL vs MySQL, a comparison
- SQLite User Permissions
- MySQL User Permissions
- SQL, creating a table
- SQL, adding data to a table
- SQL, how to use SELECT
- SQL, Handling empty cells
- SQL, Unique and Primary keys
- SQL, how to update data
- SQL, how to update a table structure
- SQL, how to delete data and tables
- SQL Joins
- SQL Views
- How to insert multiple items at once in a MongoDB collection
- How to remove all items from a MongoDB collection