SlideShare une entreprise Scribd logo
MongoDB et NoSQL
● Base de données oriéentée document
● open source
● Hautes performances
● Haute disponibilité
● Scaling automatique
Un enregistrement dans MongoDB est un document
Une structure de données composée de clef/valeur
Un document est similaire à un objet Json
BDD document
Les documents sont stockés dans des collections
Les collections partagent des indexs communs
BDD document
Collections et documents
● Pas de schéma pré-défini
○ Les documents d’une collection peuvent avoir des champs différents
○ Des champs peuvent être ajoutés, modifiés ou effacé à n’importe quel moment
● Les documents sont au format BSON (Json like)
○ Paires de clef/valeur (hashes)
{
"_id": ObjectId("223EBC5477A124425"),
"Last Name": "Marin",
“firstname” : “Xavier”,
“jedi_power” : 42
}
Insertion de données
Requêter
db.collection.find()
Requêter
Projections
MongoDB est bien doté
SGBDR vs MongoDB
SGBDR
● Les bases ont des tables
● Les tables ont des tuples
● Les tuples ont des champs
● Les champs contiennent des types
simples
● Le schéma est rigide
MongoDB
● Les bases ont des collections
● Les collections ont des documents
● Les documents ont des champs
● Les champs contiennent
○ des types simples
○ des tableaux
○ d’autres documents
● Le schéma est souple
Les points forts
● Performances
● haute disponibilité
● Scaliabité automatique
Haute disponibilité
MongoDB
1. Télécharger MongoDB http://www.mongodb.org/downloads
2. Installer (.msi, .tar.gz ou .deb)
3. Se connecter :
a. mongo --host 127.0.0.1 --port 27017
Premiers pas
● Pour voire les bases disponibles
○ > show dbs
local 0.078GB
test 0.031GB
● Pour choisir une base
○ > use test
switched to db test
● Pour savoir quelle est la base courante
○ > db
● Pour avoir de l’aide
○ > help
● Pour avoir la liste des collections d’une base
○ > show collections
Premiers pas
● Pour insérer des données
○ > a = {"Last Name": "Hammet","First Name": "Kirk","Date of Birth":
"1976-05-05" }
{
"Last Name" : "Hammet",
"First Name" : "Kirk",
"Date of Birth" : "1976-05-05"
}
○ > db.test.insert(a)
WriteResult({ "nInserted" : 1 })
○ > b={"Field A": "Value A", "Field B": "Value B"}
{ "Field A" : "Value A", "Field B" : "Value B" }
○ > db.test.insert(b)
WriteResult({ "nInserted" : 1 })
Premiers pas
● Pour requêter des données
● Tous les documents d’une collection
○ > db.test.find()
○ { "_id" : ObjectId("554a9944b5091037c44dddcc"), "Last Name" : "Hammet",
"First Name" : "Kirk", "Date of Birth" : "1976-05-05" }
{ "_id" : ObjectId("554a998eb5091037c44dddcd"), "Field A" : "Value A",
"Field B" : "Value B" }
● Clef primaire : _id
○ Automatiquement indexé
○ Généré sous forme d’ObjectId si non fourni
○ Doit être unique et immutable
○ Valeur 12 octets unique à travers le cluster
Utiliser Javascript dans Mongo
> for(var i=0; i<5; i++) db.test.insert({a:42, b:i})
WriteResult({ "nInserted" : 1 })
> db.test.find()
{ "_id" : ObjectId("554a990f0ebf783b63a57776"), "Last Name" : "Hammet", "First Name"
: "Kirk", "Date of Birth" : "1976-05-05" }
{ "_id" : ObjectId("554a9944b5091037c44dddcc"), "Last Name" : "Hammet", "First Name"
: "kirk", "Date of Birth" : "1976-05-05" }
{ "_id" : ObjectId("554a998eb5091037c44dddcd"), "Field A" : "Value A", "Field B" :
"Value B" }
{ "_id" : ObjectId("554a9c21b5091037c44dddce"), "a" : 42, "b" : 0 }
{ "_id" : ObjectId("554a9c21b5091037c44dddcf"), "a" : 42, "b" : 1 }
{ "_id" : ObjectId("554a9c21b5091037c44dddd0"), "a" : 42, "b" : 2 }
{ "_id" : ObjectId("554a9c21b5091037c44dddd1"), "a" : 42, "b" : 3 }
{ "_id" : ObjectId("554a9c21b5091037c44dddd2"), "a" : 42, "b" : 4 }
Retrouver un document spécifique
> db.test.find({"Field A": "Value A"})
{ "_id" : ObjectId("554a998eb5091037c44dddcd"), "Field A" : "Value A", "Field B" :
"Value B" }
> db.test.find({ b: { $gt: 2 } }).sort({ b: -1 })
{ "_id" : ObjectId("554a9c21b5091037c44dddd2"), "a" : 42, "b" : 4 }
{ "_id" : ObjectId("554a9c21b5091037c44dddd1"), "a" : 42, "b" : 3 }
Opérateurs conditionnels :
● $all, $exists, $type, $mod,
● $or, $and, $not, $nor $size,
● $eq, $ne, $lt, $lte, $gt, $gte, $in, $nin…
Retrouver un document spécifique
Par expression régulière
> db.test.findOne({ "Last Name": /Ham/})
{
"_id" : ObjectId("554a990f0ebf783b63a57776"),
"Last Name" : "Hammet",
"First Name" : "Kirk",
"Date of Birth" : "1976-05-05"
}
Opérations
> db.test.insert(record)
> db.test.find(query)[.skip(X)][.limit(Y)]
> db.test.findOne(query)
> db.test.remove(query[,justone=false])
Création d’index :
> db.test.ensureIndex({ b: 1 })
{
"createdCollectionAutomatically" : false,
"numIndexesBefore" : 1,
"numIndexesAfter" : 2,
"ok" : 1
}
Questions ?

Contenu connexe

PPTX
OWF12/HTML 5 local storage , olivier thomas, cto at webtyss
PPTX
Les différents design patterns pour CoreData par Emmanuel Furnon
PDF
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
PPTX
introduction à MongoDB
PPTX
Atelier : Développement rapide d&rsquo;une application basée surXWiki
PDF
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
PDF
PPTX
MongoDB_presentation_o.pptx
OWF12/HTML 5 local storage , olivier thomas, cto at webtyss
Les différents design patterns pour CoreData par Emmanuel Furnon
Breizhcamp 2015 - Comment (ne pas réussir à) modéliser ses data dans elastics...
introduction à MongoDB
Atelier : Développement rapide d&rsquo;une application basée surXWiki
Enib cours c.a.i. web - séance #1 - html5 css3-js - 2
MongoDB_presentation_o.pptx

Similaire à Mongo db et nosql (20)

PPTX
MongoDB_presentation.pptx
PPTX
MongoDB.pptx
PDF
Construisez votre première application MongoDB
PPTX
MongoDB_presentation_Moyou.pptx
PPTX
MongoDB_presentation_ye.pptx
PPTX
MongoDB_presentation_tts.pptx
PPTX
MongoDB_presentation_p.pptx
PDF
Tout ce que le getting started MongoDB ne vous dira pas
PDF
Tout ce que le getting started mongo db ne vous dira pas
PPTX
MongoDB_presentation_example.pptx
PPTX
MongoDB_presentation_xmls.pptx
PPTX
Créer des applications Java avec MongoDB
PDF
Hello mongo
PDF
SSL 2011 : Présentation de 2 bases noSQL
PPTX
Webinaire 3 de la série « Retour aux fondamentaux » : Conception de schémas :...
PPTX
2014 04-09-fr - app dev series - session 4 - indexing
PDF
Support Formation vidéo: MongoDB pour débutant
PDF
Tout ce que le getting started mongodb ne vous dira pas
PDF
MongoDB : la base NoSQL qui réinvente la gestion de données
PDF
Corrigé TP NoSQL MongoDB (5).pdf
MongoDB_presentation.pptx
MongoDB.pptx
Construisez votre première application MongoDB
MongoDB_presentation_Moyou.pptx
MongoDB_presentation_ye.pptx
MongoDB_presentation_tts.pptx
MongoDB_presentation_p.pptx
Tout ce que le getting started MongoDB ne vous dira pas
Tout ce que le getting started mongo db ne vous dira pas
MongoDB_presentation_example.pptx
MongoDB_presentation_xmls.pptx
Créer des applications Java avec MongoDB
Hello mongo
SSL 2011 : Présentation de 2 bases noSQL
Webinaire 3 de la série « Retour aux fondamentaux » : Conception de schémas :...
2014 04-09-fr - app dev series - session 4 - indexing
Support Formation vidéo: MongoDB pour débutant
Tout ce que le getting started mongodb ne vous dira pas
MongoDB : la base NoSQL qui réinvente la gestion de données
Corrigé TP NoSQL MongoDB (5).pdf
Publicité

Plus de Xavier MARIN (7)

PDF
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
PDF
Warp 10 - The most advanced Time Series Platform
PDF
Vert.x
PDF
Polymer
PDF
Vert.x 3
PDF
Jeux vidéo sur mobile - Unity3d
PDF
FinistJUG - Camel Presentation
BreizhCamp 2019 - IoT et open source hardware pour la collecte de timeseries
Warp 10 - The most advanced Time Series Platform
Vert.x
Polymer
Vert.x 3
Jeux vidéo sur mobile - Unity3d
FinistJUG - Camel Presentation
Publicité

Dernier (7)

PPTX
Presentation_Securite_Reseaux_Bac+2.pptx
PDF
presentation_with_intro_compressee IEEE EPS France
PDF
FORMATION EN Programmation En Langage C.pdf
PPTX
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
PDF
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
PDF
Tendances tech 2025 - SFEIR & WENVISION.pdf
PDF
Modems expliqués- votre passerelle vers Internet.pdf
Presentation_Securite_Reseaux_Bac+2.pptx
presentation_with_intro_compressee IEEE EPS France
FORMATION EN Programmation En Langage C.pdf
Souveraineté numérique - Définition et enjeux pour les entreprises et les dév...
FORMATION COMPLETE EN EXCEL DONE BY MR. NYONGA BRICE.pdf
Tendances tech 2025 - SFEIR & WENVISION.pdf
Modems expliqués- votre passerelle vers Internet.pdf

Mongo db et nosql

  • 2. ● Base de données oriéentée document ● open source ● Hautes performances ● Haute disponibilité ● Scaling automatique
  • 3. Un enregistrement dans MongoDB est un document Une structure de données composée de clef/valeur Un document est similaire à un objet Json BDD document
  • 4. Les documents sont stockés dans des collections Les collections partagent des indexs communs BDD document
  • 5. Collections et documents ● Pas de schéma pré-défini ○ Les documents d’une collection peuvent avoir des champs différents ○ Des champs peuvent être ajoutés, modifiés ou effacé à n’importe quel moment ● Les documents sont au format BSON (Json like) ○ Paires de clef/valeur (hashes) { "_id": ObjectId("223EBC5477A124425"), "Last Name": "Marin", “firstname” : “Xavier”, “jedi_power” : 42 }
  • 11. SGBDR vs MongoDB SGBDR ● Les bases ont des tables ● Les tables ont des tuples ● Les tuples ont des champs ● Les champs contiennent des types simples ● Le schéma est rigide MongoDB ● Les bases ont des collections ● Les collections ont des documents ● Les documents ont des champs ● Les champs contiennent ○ des types simples ○ des tableaux ○ d’autres documents ● Le schéma est souple
  • 12. Les points forts ● Performances ● haute disponibilité ● Scaliabité automatique
  • 14. MongoDB 1. Télécharger MongoDB http://www.mongodb.org/downloads 2. Installer (.msi, .tar.gz ou .deb) 3. Se connecter : a. mongo --host 127.0.0.1 --port 27017
  • 15. Premiers pas ● Pour voire les bases disponibles ○ > show dbs local 0.078GB test 0.031GB ● Pour choisir une base ○ > use test switched to db test ● Pour savoir quelle est la base courante ○ > db ● Pour avoir de l’aide ○ > help ● Pour avoir la liste des collections d’une base ○ > show collections
  • 16. Premiers pas ● Pour insérer des données ○ > a = {"Last Name": "Hammet","First Name": "Kirk","Date of Birth": "1976-05-05" } { "Last Name" : "Hammet", "First Name" : "Kirk", "Date of Birth" : "1976-05-05" } ○ > db.test.insert(a) WriteResult({ "nInserted" : 1 }) ○ > b={"Field A": "Value A", "Field B": "Value B"} { "Field A" : "Value A", "Field B" : "Value B" } ○ > db.test.insert(b) WriteResult({ "nInserted" : 1 })
  • 17. Premiers pas ● Pour requêter des données ● Tous les documents d’une collection ○ > db.test.find() ○ { "_id" : ObjectId("554a9944b5091037c44dddcc"), "Last Name" : "Hammet", "First Name" : "Kirk", "Date of Birth" : "1976-05-05" } { "_id" : ObjectId("554a998eb5091037c44dddcd"), "Field A" : "Value A", "Field B" : "Value B" } ● Clef primaire : _id ○ Automatiquement indexé ○ Généré sous forme d’ObjectId si non fourni ○ Doit être unique et immutable ○ Valeur 12 octets unique à travers le cluster
  • 18. Utiliser Javascript dans Mongo > for(var i=0; i<5; i++) db.test.insert({a:42, b:i}) WriteResult({ "nInserted" : 1 }) > db.test.find() { "_id" : ObjectId("554a990f0ebf783b63a57776"), "Last Name" : "Hammet", "First Name" : "Kirk", "Date of Birth" : "1976-05-05" } { "_id" : ObjectId("554a9944b5091037c44dddcc"), "Last Name" : "Hammet", "First Name" : "kirk", "Date of Birth" : "1976-05-05" } { "_id" : ObjectId("554a998eb5091037c44dddcd"), "Field A" : "Value A", "Field B" : "Value B" } { "_id" : ObjectId("554a9c21b5091037c44dddce"), "a" : 42, "b" : 0 } { "_id" : ObjectId("554a9c21b5091037c44dddcf"), "a" : 42, "b" : 1 } { "_id" : ObjectId("554a9c21b5091037c44dddd0"), "a" : 42, "b" : 2 } { "_id" : ObjectId("554a9c21b5091037c44dddd1"), "a" : 42, "b" : 3 } { "_id" : ObjectId("554a9c21b5091037c44dddd2"), "a" : 42, "b" : 4 }
  • 19. Retrouver un document spécifique > db.test.find({"Field A": "Value A"}) { "_id" : ObjectId("554a998eb5091037c44dddcd"), "Field A" : "Value A", "Field B" : "Value B" } > db.test.find({ b: { $gt: 2 } }).sort({ b: -1 }) { "_id" : ObjectId("554a9c21b5091037c44dddd2"), "a" : 42, "b" : 4 } { "_id" : ObjectId("554a9c21b5091037c44dddd1"), "a" : 42, "b" : 3 } Opérateurs conditionnels : ● $all, $exists, $type, $mod, ● $or, $and, $not, $nor $size, ● $eq, $ne, $lt, $lte, $gt, $gte, $in, $nin…
  • 20. Retrouver un document spécifique Par expression régulière > db.test.findOne({ "Last Name": /Ham/}) { "_id" : ObjectId("554a990f0ebf783b63a57776"), "Last Name" : "Hammet", "First Name" : "Kirk", "Date of Birth" : "1976-05-05" }
  • 21. Opérations > db.test.insert(record) > db.test.find(query)[.skip(X)][.limit(Y)] > db.test.findOne(query) > db.test.remove(query[,justone=false]) Création d’index : > db.test.ensureIndex({ b: 1 }) { "createdCollectionAutomatically" : false, "numIndexesBefore" : 1, "numIndexesAfter" : 2, "ok" : 1 }