MongoDB Overview

Institut Supérieur d'Informatique
Page 1 sur 14Lecteur de document UniversityLib

MongoDB Overview

Institut Supérieur d'Informatique · Databases, NoSQL, Programming · notes

Voir tous les documents en bases de données

MongoDB

Adel KHALFALLAH

Institut Sup rieur dInformatique

[email protected]

[email protected]

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

D finition des donn es

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Documents

" Un document est un ensemble ordonn de cl s/valeur

{Nom : "Ali", Age : 26}

" Les valeurs prennent lun des types de BSON parmi lesquels:

Double/Decimal128/32-bits integer/64-bits integer

String/Date/Boolean/Timestamp/Regular expression

ObjectID, La valeur Null

Array/Documents

" Les cl s avec des casses ou des types diff rents sont diff rentes

{Age : 26} # {Age : "26"} et {Age : 26} # {age : 26}

" Les cl s ne doivent pas tre dupliqu es

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Documents

" Les tableaux sont de types h t rog ne

{ description: ["homme", 46, 1.72]}

" Les documents sont imbriqu s

{identite : {nom : "baligh", prenom: "hamdi"}}

" Lacc s une valeur dun tableau ou une cl dun

document int gr utilise la notation point:

description.2 46

identite.nom "baligh"

" Chaque document dispose dune identification unique : Le

champ _id g n r implicitement, il peut tre d fini

explicitement

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Documents

Publicité

" ObjectId est le type par d faut de _Id, il est con u pour

tre facile g n rer dans un environnement distribu

" 12 Octets : 0 3 timestamp local (secondes), 4 6

identification de la machine, 7 8 identification du

processus, les octets 0 8 garantissent une valeur

unique par machine/processus toutes les secondes, 9

11 permettent davoir 224 valeurs diff rentes par

seconde/process/machine

" Pour g n rer un ObjectId qui permet didentifier un

document dans un contexte distribu , les diff rentes

machines nont pas besoin de se synchroniser

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Collections

" Une collection est un ensemble de documents, elle est

d finie par un nom

" Une collection na pas de sch ma : elle peut contenir des

documents avec des formats diff rents, toutefois les

validators permettent dimposer des contraintes sur le

type, les valeurs, lexistence, etc.

" La base de donn es accueille plusieurs collections

Relationnel

Base de donn es

Table

Ligne

MongoDB

Base de donn es

Collection

Document

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Create Read Update Delete (CRUD) Documents

" Cr er un seul document

db.stock.insertOne(

Publicité

{ article: "nappe", qte: 100, label: ["coton"], taille: {

long: 150, larg: 60} }

)

Retourne le document

{

"acknowledged" : true,

"insertedId" : ObjectId("56fc40f9d735c28df206d078")

}

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Create Read Update Delete (CRUD) Documents

"

Insertion de plusieurs documents

db.stock.insertMany ([

{ article: "nappe", qte: 100, label: ["coton"], taille: {

long: 150, larg: 60} },

{ article: "serviette", qte: 45, label: ["blanc", "beige" ],

taille: { long: 30, larg: 20} },

{ article: "mouchoir", qte: 30, label: ["synth tique"],

taille: { long: 20, larg: 20} }

])

" Un document contenant les diff rents Ids est retourn

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Create Read Update Delete (CRUD) Documents

" La m thode find permet de retrouver des documents

db.collection.find(requ te, projection)

requ te et projection sont des documents

"

" projection est de la forme: {cl : choix,&,cl Tab: choix}

il

permet dexpliciter les cl s ou les l ments de tableau qui

seront retourn es. Choix est soit

Un bool en ou 0,1 il permet de sp cifier linclusion ou lexclusion

de la cl correspondante

Soit une s lection d l ments de tableau: $ d signe le premier

Publicité

l ment dun tableau, $elemMatch permet de sp cifier une

condition sur les l ments dun tableau, $slice permet de

sp cifier le nombre d l ments dun tableau

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Create Read Update Delete (CRUD) Documents

db.collection.find(requ te, projection)

" La requ te prend plusieurs formes:

{Cl : filtre} o filtre est un document construit gr ce aux

op rateurs bool ens logiques : $and, $or,& et de comparaison:

$lt, $eq, $gt, &

{Cl Tab : filtre} o Cl Tab est de type tableau et filtre reprend les

op rateurs pr c dents auxquels sajoutent les op rateurs

$elemMatch, $size,& et il est aussi possible dutiliser la notation

point (tableau.index) pour manipuler un l ment du tableau

{Cl Doc : filtre} o Cl Doc est un document imbriqu et filtre est

un document simple ou construit gr ce aux op rateurs pr c dents

pour manipuler des documents imbriqu s

{Cl Doc.Cl : filtre} dans le cas de documents imbriqu s la

notation point permet de manipuler les cl s internes

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Create Read Update Delete (CRUD) Documents

" Mettre jour un seul document:

db.collection.updateOne(filtre,update[,params optionnels])

" Filtre est similaire celui de find, il permet de sp cifier le

document qui sera mis jour

" Update sp cifie la mis jour, il peut tre:

Un op rateur de mise jour: $set, $unset, $mul, $rename,&

Un pipeline de mise jour, qui se d roule en 3 tapes: lajout de

cl s $set, la suppression de cl s $unset et la mise jour de

valeurs

" Mettre jour plusieurs documents

db.collection.updateMany(filtre,update[,params optionnels])

Identique updateOne, sauf que le filtre permet de retrouver plusieurs

documents

Publicité

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Create Read Update Delete (CRUD) Documents

" Modifier les valeurs dun document:

db.collection.replaceOne(filter, remplDoc[,params optionnels])

" Le premier document sp cifi par le filtre sera remplac par le

document remplDoc

" Le document de remplacement remplDoc ne peut pas contenir

dop rateurs de mise jour, il nest donc pas possible de modifier la

structure du document s lectionn

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Create Read Update Delete (CRUD) Documents

" Suppression dun seul document:

db.collection.deleteOne(filtre[,params optionnels])

" Le filtre sp cifie le document qui sera supprim

" Suppression de plusieurs documents

db.collection.deleteMany(filtre[,params optionnels])

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1

Traitement par lot

" Les op rations CRUD peuvent tre ex cut s par lot

db.collection.bulkWrite([ op1, op2, ... ] [,params optionnels])

" Op1, op2, & sont lune des op rations CRUD vues

pr c demment

" Elles sont ex cut es dans lordre, si lune delle choue le

traitement sarr te

"

Il est possible de pr ciser que lex cution nest pas

s quentielle, le syst me peut alors r ordonner les

op rations et les ex cuter en parall le, l chec dune

op ration narr te pas lensemble

Adel KHALFALLAH - G nie logiciel - Bases de donn es NoSQL - Institut Sup rieur dInformatique - 1