Comment démarrer avec MongoDB en 10 minutes

MongoDB est une riche base de données NoSQL orientée document.

Si vous êtes un débutant complet en NoSQL, je vous recommande de jeter un coup d'œil à mon article NoSQL publié précédemment.

Aujourd'hui, je voulais partager certaines des informations de base sur les commandes MongoDB telles que l'interrogation, le filtrage des données, la suppression, la mise à jour, etc.

Bon, assez de discussion, allons travailler!

Configuration ?

Pour travailler avec MongoDB, vous devez d'abord installer MongoDB sur votre ordinateur. Pour ce faire, visitez le centre de téléchargement officiel et téléchargez la version correspondant à votre système d'exploitation spécifique. Ici, j'ai utilisé Windows.

Après avoir téléchargé la configuration du serveur de communauté MongoDB, vous passerez par un processus d'installation «suivant après suivant». Une fois terminé, dirigez-vous vers le lecteur C dans lequel vous avez installé MongoDB. Accédez aux fichiers programme et sélectionnez le répertoire MongoDB.

C: -> Program Files -> MongoDB -> Server -> 4.0(version) -> bin

Dans le répertoire bin, vous trouverez quelques fichiers exécutables intéressants.

  • Mongod
  • Mongo

Parlons de ces deux fichiers.

mongod signifie «Mongo Daemon». mongod est un processus d'arrière-plan utilisé par MongoDB. L'objectif principal de mongod est de gérer toutes les tâches du serveur MongoDB. Par exemple, accepter les demandes, répondre au client et gérer la mémoire.

mongo est un shell de ligne de commande qui peut interagir avec le client (par exemple, les administrateurs système et les développeurs).

Voyons maintenant comment nous pouvons faire fonctionner ce serveur. Pour ce faire sous Windows, vous devez d'abord créer quelques répertoires dans votre lecteur C. Ouvrez votre invite de commande dans votre lecteur C et procédez comme suit:

C:\> mkdir data/dbC:\> cd dataC:\> mkdir db

Le but de ces répertoires est que MongoDB nécessite un dossier pour stocker toutes les données. Le chemin du répertoire de données par défaut de MongoDB se trouve /data/dbsur le lecteur. Par conséquent, il est nécessaire que nous fournissions ces répertoires comme tel.

Si vous démarrez le serveur MongoDB sans ces répertoires, vous verrez probablement l'erreur suivante:

Après avoir créé ces deux fichiers, dirigez-vous à nouveau vers le dossier bin que vous avez dans votre répertoire mongodb et ouvrez votre shell à l'intérieur. Exécutez la commande suivante:

mongod

Voilà! Maintenant, notre serveur MongoDB est opérationnel! ?

Pour travailler avec ce serveur, nous avons besoin d'un médiateur. Ouvrez donc une autre fenêtre de commande dans le dossier de liaison et exécutez la commande suivante:

mongo

Après avoir exécuté cette commande, accédez au shell sur lequel nous avons exécuté la commande mongod (qui est notre serveur). Vous verrez un message «connexion acceptée» à la fin. Cela signifie que notre installation et notre configuration sont réussies!

Exécutez simplement dans le shell mongo:

db

Configuration des variables d'environnement

Pour gagner du temps, vous pouvez configurer vos variables d'environnement. Sous Windows, cela se fait en suivant les menus ci-dessous:

Advanced System Settings -> Environment Variables -> Path(Under System Variables) -> Edit

Copiez simplement le chemin de notre dossier bin et cliquez sur OK! Dans mon cas c'estC:\Program Files\MongoDB\Server\4.0\bin

Maintenant, vous êtes prêt!

Travailler avec MongoDB

Il existe de nombreuses interfaces graphiques (interface utilisateur graphique) pour fonctionner avec le serveur MongoDB tel que MongoDB Compass, Studio 3T, etc.

Ils fournissent une interface graphique afin que vous puissiez facilement travailler avec votre base de données et effectuer des requêtes au lieu d'utiliser un shell et de saisir des requêtes manuellement.

Mais dans cet article, nous utiliserons l'invite de commande pour faire notre travail.

Il est maintenant temps pour nous de nous plonger dans les commandes MongoDB qui vous aideront à les utiliser dans vos futurs projets.

  1. Ouvrez votre invite de commande et tapez mongodpour démarrer le serveur MongoDB.

2. Ouvrez un autre shell et tapez mongopour se connecter au serveur de base de données MongoDB.

1. Recherche de la base de données actuelle dans laquelle vous vous trouvez

db

Cette commande affichera la base de données actuelle dans laquelle vous vous trouvez. testEst la base de données initiale fournie par défaut.

2. Liste des bases de données

show databases

J'ai actuellement quatre bases de données. Ils sont: CrudDB, admin, configet local.

3. Accédez à une base de données particulière

use 

Ici, je suis passé à la localbase de données. Vous pouvez vérifier cela si vous essayez la commandedbpour imprimer le nom actuel de la base de données.

4. Création d'une base de données

Avec RDBMS (Relational Database Management Systems), nous avons des bases de données, des tables, des lignes et des colonnes.

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

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 myCollectioneven if the collection does not exist. Then it will insert a document with nameand 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.

  1. insertOne() is used to insert a single document only.
  2. insertMany() is used to insert more than one document.
  3. 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 locationon the document for John Doe. So if youusefind, then you’ll see only forjohn doe the locationproperty 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 ageto 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 $andoperator!

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