Not-Only SQL (Part. 2) – MongoDB – CRUD

Create Read Update Delete (CRUD) avec MongoDB

Utiliser une base de données avec mongosh :

use 

Exemples de code et explication

database.collection.fonction({champ : 'entrée'}));

shnapshnoot.articles.insertOne({titre : 'Not-Only SQL (Part. 2) - MongoDB - CRUD'}));

Opérations Create

insertOne()
insertMany()

Plusieurs entrées en même temps

Opérations Read

findOne()
find()

findOne –> Retourne le PREMIER document d’une recherche.

Méthodes du curseur mongoDB

.next() -> accède au document suivant.
.hasNext() -> retourne un booléen si le  curseur peut encore être itéré.
.count() -> retourne le nombre d'élément.
.pretty() -> résultat plus facile à lire.
.toArray() -> récupère les documents du curseur sous la forme d'un tableau.

Opérations Update

updateOne()
updateMany()
replaceOne()
findOneAndUpdate()
findOneAndReplace()

Les opérateurs

$set -> met à jour un champ, si il n’existe pas, il va le créer
$unset -> Supprime le champ
$inc -> incrémente un nombre

use('testdb')

db.users.updateOne(
    {name: 'SeenKid BHOP'},
    {
        $set: {name: 'SeenKid'}
    }
)

Si j’essaie de mettre a jour mon pseudo dans la base de données, voici la requête que je dois faire.

J’update le nom SeenKid BHOP en SeenKid.

Si je veux trouver un élément et le remplacer

use('testdb')

db.users.findOneAndReplace(
    {name: 'SeenKid'},
    {name: 'MongoDB'},
    {returnNewDocument: true}
)

J’ai donc remplacé mon pseudo (SeenKid) par “MongoDB”.

Opérations Delete

deleteOne()
deleteMany()
findOneAndDelete()
drop()
dropDatabase()

Si je veux supprimer un champ, voici comment faire.

Types de données

Client : JSON
Base de données : BSON

Voici la liste complète des types (Pris de MONGODB DOCUMENTATION)

TypeNumberAliasNotes
Double1“double”
String2“string”
Object3“object”
Array4“array”
Binary data5“binData”
Undefined6“undefined”Deprecated.
ObjectId7“objectId”
Boolean8“bool”
Date9“date”
Null10“null”
Regular Expression11“regex”
DBPointer12“dbPointer”Deprecated.
JavaScript13“javascript”
Symbol14“symbol”Deprecated.
JavaScript code with scope15“javascriptWithScope”Deprecated in MongoDB 4.4.
32-bit integer16“int”
Timestamp17“timestamp”
64-bit integer18“long”
Decimal12819“decimal”
Min key-1“minKey”
Max key127“maxKey”

MongoDB Extended JSON

  • créé automatiquement par MongoDB si pas spécifié lors d’un ajout
  • Peut avoir n’importe quelle valeur si désiré

_id

Tous les éléments doivent avoir un champ _id unique dans la collection

ObjectID

  • Type BSON
  • 12 octets
    • 4 pour un timestamp de création
    • 5 pour avoir une valeur aléatoire
    • 3 pour un compteur qui s’incrémente et démarre à une valeur aléatoire

Possible d’obtenir le timestamp de création de n’importe quel document :

ObjectidId.getTimestamp()

Insérer plusieurs documents

Les documents sont insérés dans l’ordre de déclaration
En cas d’erreur sur un document, la suite s’arrête sauf si on utilise l’option ordered false

{ "ordered": false }

Import & export de données

Format BSON :

  • mongodump
  • mongorestore

Format JSON et CSV :

  • mongoexport
  • mongoimport

paramètres utiles

-d ou –db : choisit la base de données
-c ou –collection : précise la collection
-o ou –out : précise la collection à exporter
–gzip : permet de compresser le fichier de sortie pour que sa taille soit plus faible.

Exemples
mongodump --gzip --db=shnapshnoot
mongodump --gzip --db=shnapshnoot --collection=users dump/shnapshnoot/users.bson

Documentation mongoDB

Vers la partie 1

3 commentaires

  1. Thank you for your sharing. I am worried that I lack creative ideas. It is your article that makes me full of hope. Thank you. But, I have a question, can you help me?

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *