# MongoDb

```bash
db.getCollectionInfos().forEach(function (c) { var stats = db.getCollection(c.name).stats(); print(c.name + ": " + (stats.size / 1024 / 1024).toFixed(2) + " MB"); });
```

<div id="bkmrk-mon_attributafficher">mon_attributAfficher les bases de données :</div>```
show dbs
```

<div id="bkmrk-utiliser-une-base-de">Utiliser une base de donnée : </div>```
use mabase
```

<div id="bkmrk-"></div><div id="bkmrk-afficher-les-collect">Afficher les collections de la base de donnée en cours : </div>```
show collections
```

<div id="bkmrk-lister-toutes-les-va">Lister toutes les valeurs dans la collection utilisateurs : </div>```
db.utilisateurs.find()
```

<div id="bkmrk-%C2%A0m%C3%AAme-chose-mais-pro"> Même chose mais proprement</div>```
db.utilisateurs.findOne().pretty()
```

<div id="bkmrk-lister-proprement-to">Lister proprement toutes les valeurs dans la collection utilisateur -&gt; Qui ont l'attribut "mon_attribut" égal à mavaleur :</div>```
db.utilisateurs.find({'mon_attribut':'mavaleur'}).pretty()
```

Afficher uniquement certainnes collones (de la requêtte précédente) :

```mongo
db.utilisateurs.find({'mon_attribut':'mavaleur'},{_id:1,'mon_attribut':1,created_at:1})
```

Remplacer les valeurs d'une collone dans toutes les lignes :

```
db.ma_collone.find().forEach(function (document) {

    var query = { "_id": document["_id"] }, /* query predicate */
        update = { /* update document */
            "$set": { "attribut_a_changer": "valleur_a_definir" }
        },
        options = { "upsert": true };
    db.ma_collone.updateOne(query, update, options);
    
});
```

Calculer la taille des collections :

```bash
db.getCollectionInfos().forEach(function (c) { var stats = db.getCollection(c.name).stats(); print(c.name + ": " + (stats.size / 1024 / 1024).toFixed(2) + " MB"); });
```

#### Inserrer des valeurs de tests : 

<span style="text-decoration: underline;">**Utilisation de la base de donnée "ma\_base" :** </span>

```
use ma_base
```

<span style="text-decoration: underline;">**Création d'une collection de test :** </span>

```
db.createCollection("collection_full")
```

<span style="text-decoration: underline;">**Installation des librairies necessaires :** </span>

```shell
pip install Faker
pip install mongoclient
```

<span style="text-decoration: underline;">**Fichier d'insertion de data :** </span>

```PHP
from faker import Faker
from pymongo import MongoClient

fake = Faker()

client = MongoClient()
db = client.ma_base
collection = db.collection_full

for i in range(100000):
    utilisateur = {
        "nom": fake.name(),
        "adresse": fake.address(),
        "email": fake.email(),
        "telephone": fake.phone_number()
    }
    print(i)
    collection.insert_one(utilisateur)

```

<p class="callout success">Nous lançons le script pour générer les 100 000 utilisateurs</p>

<span style="text-decoration: underline;">**Comtage du nombre d'utilisateurs insérés :** </span>

```mongo
db.collection_full.find().count()
```

\--&gt; 100 000 utilisateurs présent.

<span style="text-decoration: underline;">**Exemple d'un utilisateur inséré :** </span>

```
{
	"_id" : ObjectId("642f2d1e0171695384ffda56"),
	"nom" : "Jason Tucker",
	"adresse" : "74817 Johnson Wall\nPort Karen, WI 81831",
	"email" : "robertsalexis@example.org",
	"telephone" : "+1-814-184-2896"
}
```