mongodb : la base nosql qui réinvente la gestion de données
DESCRIPTION
MongoDB : la base NoSQL qui réinvente la gestion de donnéesTRANSCRIPT
![Page 1: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/1.jpg)
@dwursteisen
MongoDB
11/28/13 !1
la base NoSQL qui réinvente la gestion de données
![Page 2: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/2.jpg)
MongoDBBig Database
@DWURSTEISEN
![Page 4: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/4.jpg)
![Page 5: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/5.jpg)
WARNING
![Page 6: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/6.jpg)
![Page 7: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/7.jpg)
Il n’y a pas si longtemps que cela, un site internet faisait sensation…
![Page 8: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/8.jpg)
![Page 9: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/9.jpg)
![Page 10: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/10.jpg)
20:00:00
![Page 11: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/11.jpg)
Ce site déboite
![Page 12: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/12.jpg)
Oups ! Database Error
![Page 13: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/13.jpg)
no more space disk available
![Page 14: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/14.jpg)
![Page 15: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/15.jpg)
![Page 16: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/16.jpg)
![Page 17: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/17.jpg)
![Page 18: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/18.jpg)
![Page 19: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/19.jpg)
![Page 20: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/20.jpg)
BIG DATA
![Page 21: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/21.jpg)
Animation Soat
Devoxx France 2013
![Page 22: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/22.jpg)
Caractéristiques(sous le capot)
![Page 23: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/23.jpg)
Orienté document
![Page 24: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/24.jpg)
![Page 25: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/25.jpg)
{! "_id": "e
nigme1", !
"titre": "Enigme du ve
ndredi", !
"activation": true!
}
![Page 26: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/26.jpg)
{! "_id": "e
nigme1", !
"titre": "Enigme du ve
ndredi", !
"activation": true!
}
{! "_id": "enigme1", ! "activation": true, ! "joueurs": [! { "email": "[email protected]", "score": 20 }! ], ! "indices": [! {! "contenu": "je suis ton père",! "flashcode": "111-111-1111", ! "joueurs": [ { "email": "[email protected]" } ]! } ]!}!
![Page 27: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/27.jpg)
Sans schéma
![Page 28: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/28.jpg)
CREATE TABLE example_default_now ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, data VARCHAR(100), created TIMESTAMP DEFAULT NOW() );
![Page 29: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/29.jpg)
CREATE TABLE example_default_now ( id INT NOT NULL PRIMARY KEY AUTO_INCREMENT, data VARCHAR(100), created TIMESTAMP DEFAULT NOW() );
![Page 30: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/30.jpg)
Sans transaction
![Page 31: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/31.jpg)
Transaction
![Page 32: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/32.jpg)
Transaction
![Page 33: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/33.jpg)
Transaction
![Page 34: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/34.jpg)
Transaction
![Page 35: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/35.jpg)
Transaction
![Page 36: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/36.jpg)
Transaction
![Page 37: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/37.jpg)
Sans transaction
![Page 38: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/38.jpg)
Sans transaction
![Page 39: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/39.jpg)
Sans transaction
![Page 40: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/40.jpg)
Sans transaction
![Page 41: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/41.jpg)
Update atomique
![Page 42: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/42.jpg)
Sans jointure
![Page 43: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/43.jpg)
{! "_id": "enigme1", ! "activation": true, ! "joueurs": [! { "email": "[email protected]", "score": 20 }! ], ! "indices": [! {! "contenu": "je suis ton père",! "flashcode": "111-111-1111", ! "joueurs": [ { "email": "[email protected]" } ]! } ]!}!
![Page 44: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/44.jpg)
{! "_id": "enigme1", ! "activation": true, ! "joueurs": [! { "email": "[email protected]", "score": 20 }! ], ! "indices": [! {! "contenu": "je suis ton père",! "flashcode": "111-111-1111", ! "joueurs": [ { "email": "[email protected]" } ]! } ]!}!
jointure ?
![Page 45: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/45.jpg)
Distribué
![Page 46: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/46.jpg)
Document = 16Mb Hard Limit
![Page 47: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/47.jpg)
Design des structures
des données
![Page 48: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/48.jpg)
Type Exemple
Int / Double / … { a: 1 }
Boolean { b: true }
String { c: ‘hello’ }
Array { d: [1, 2, 3] }
Date {e: ISODate("2012-12-19T06:01:17.171Z")
ObjectId {f: ObjectId(‘123456’)}
Object {g: {a: 1, b: true}}
…
http://docs.mongodb.org/manual/reference/bson-types/
![Page 49: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/49.jpg)
Organiserles données selon leurs
Utilisations
![Page 50: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/50.jpg)
![Page 51: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/51.jpg)
ci gît la 4ème forme
normale
![Page 52: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/52.jpg)
Structure de donnée pour l’affichage d’un message ?
Question :
![Page 53: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/53.jpg)
2
![Page 54: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/54.jpg)
2
Auteur
![Page 55: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/55.jpg)
2
Auteur Contenu
![Page 56: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/56.jpg)
2
Auteur Contenu
Recouicoui
![Page 57: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/57.jpg)
{ _id: ObjectId(11),
![Page 58: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/58.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. »,
![Page 59: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/59.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla »,
![Page 60: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/60.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla », …
![Page 61: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/61.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla », … recouicoui: [ObjectId(22), ObjectId(33)]
![Page 62: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/62.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla », … !
recouicoui: 2, // compteur
![Page 63: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/63.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla », … !
recouicoui: [{user: {…}, {user: {…}]
![Page 64: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/64.jpg)
![Page 65: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/65.jpg)
![Page 66: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/66.jpg)
![Page 67: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/67.jpg)
![Page 68: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/68.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla », … !
recouicoui: [{user: {…}, {user: {…}]
![Page 69: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/69.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla », … !
recouicoui: [{user: {…} * 789013]
![Page 70: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/70.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla », … !
recouicoui: [{user: {…} * 789013]
> 16Mb
![Page 71: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/71.jpg)
2
![Page 72: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/72.jpg)
2
Information partielle
![Page 73: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/73.jpg)
{ _id: ObjectId(11), user: {mail: « user1 », avatar: « http://…. », content: « blabla », … recouicoui: { users: [{user: {…} * 5], compteur: 789013 }
![Page 74: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/74.jpg)
bonnecomplexe
structure de donnée est
Le design d’une
![Page 75: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/75.jpg)
Parlez-vous
Français ?
Query languageselect * from table
![Page 76: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/76.jpg)
Le shell : mongo
![Page 77: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/77.jpg)
Lecture
![Page 78: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/78.jpg)
Sélection d’un document
db.collection.findOne(…)
![Page 79: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/79.jpg)
Sélection d’un document
db.collection.findOne(…)
Query
![Page 80: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/80.jpg)
Sélection de documents
db.collection.find(…)
![Page 81: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/81.jpg)
Sélection et mise à jour de document
db.collection.findAndModify(…)
![Page 82: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/82.jpg)
Champ unique {_id: ‘azerty’}
![Page 83: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/83.jpg)
Champ unique {_id: ‘azerty’}
{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! "activation": true!}
✓
![Page 84: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/84.jpg)
Champ unique {_id: ‘azerty’}
{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! "activation": true!}
✓{! "_id": "azerty", ! "activation": true,! "titre": "Enigme du vendredi"!}
✓
![Page 85: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/85.jpg)
{! "_id": "azerty12345", ! "activation": true,! "titre": "Enigme du vendredi"!}
✗
Champ unique {_id: ‘azerty’}
{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! "activation": true!}
✓{! "_id": "azerty", ! "activation": true,! "titre": "Enigme du vendredi"!}
✓
![Page 86: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/86.jpg)
Sous document spécifique {auteur: {nom: ‘Wursteisen’}}
![Page 87: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/87.jpg)
Sous document spécifique {auteur: {nom: ‘Wursteisen’}}
{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen"}!} ✓
![Page 88: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/88.jpg)
Sous document spécifique {auteur: {nom: ‘Wursteisen’}}
{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen"}!} ✓{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen", "prénom":"David"}!} ✗
![Page 89: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/89.jpg)
Sous document spécifique {auteur: {prénom: ‘David’, nom: ‘Wursteisen’}}
![Page 90: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/90.jpg)
Sous document spécifique {auteur: {prénom: ‘David’, nom: ‘Wursteisen’}}
{! "_id": "azerty", ! "auteur": {"prénom":"David", "nom":"Wursteisen"}!} ✓
![Page 91: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/91.jpg)
Sous document spécifique {auteur: {prénom: ‘David’, nom: ‘Wursteisen’}}
{! "_id": "azerty", ! "auteur": {"prénom":"David", "nom":"Wursteisen"}!} ✓{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen", "prénom":"David"}!} ✗
![Page 92: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/92.jpg)
Sous champ {‘auteur.nom’: ‘Wursteisen’}
![Page 93: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/93.jpg)
Sous champ {‘auteur.nom’: ‘Wursteisen’}{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen"}!} ✓
![Page 94: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/94.jpg)
Sous champ {‘auteur.nom’: ‘Wursteisen’}{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen"}!} ✓{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen", "prénom":"David"}!} ✓
![Page 95: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/95.jpg)
Sous champ {‘auteur.nom’: ‘Wursteisen’}{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen"}!} ✓{! "_id": "azerty", ! "auteur": {"nom":"Wursteisen", "prénom":"David"}!} ✓{! "_id": "azerty", ! "auteur": {"nom":"Bob", "prénom":"David"}!} ✗
![Page 96: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/96.jpg)
Champ unique {recouicoui: {$gt: 20}}
![Page 97: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/97.jpg)
Champ unique {recouicoui: {$gt: 20}}
{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! "recouicoui": 50!}
✓
![Page 98: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/98.jpg)
Champ unique {recouicoui: {$gt: 20}}
{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! "recouicoui": 50!}
✓{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! "recouicoui": 10!}
✗
![Page 99: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/99.jpg)
Champ unique {recouicoui: {$gt: 20}}
{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! "recouicoui": 50!}
✓{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! "recouicoui": 10!}
✗{! "_id": "azerty", ! "titre": "Enigme du vendredi", ! !}
✗
![Page 100: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/100.jpg)
Écriture
![Page 101: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/101.jpg)
Insertion d’un document
db.collection.insert(…)
![Page 102: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/102.jpg)
Insertion d’un document
db.collection.insert(…)
Document
![Page 103: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/103.jpg)
Update d’un document
db.collection.update(<query>, <update>)
![Page 104: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/104.jpg)
Update d’un document
db.collection.update(<query>, <update>)
modifier
![Page 105: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/105.jpg)
Update de documents
db.collection.update(…, …, {multi: true})
![Page 106: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/106.jpg)
Écrire un document db.collection.update(…, {prénom:’David’})
![Page 107: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/107.jpg)
Écrire un document db.collection.update(…, {prénom:’David’})
{! "_id": "azerty", ! "nom": "wursteisen", ! "prénom": "bob"!}
![Page 108: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/108.jpg)
Écrire un document db.collection.update(…, {prénom:’David’})
{! "_id": "azerty", ! "nom": "wursteisen", ! "prénom": "bob"!}
{! "_id": "azerty", ! "prénom": "David"!}
![Page 109: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/109.jpg)
Modifier un champ db.collection.update(…, {$set: {prénom:’David’}})
![Page 110: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/110.jpg)
Modifier un champ db.collection.update(…, {$set: {prénom:’David’}})
{! "_id": "azerty", ! "nom": "wursteisen", ! "prénom": "bob"!}
![Page 111: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/111.jpg)
Modifier un champ db.collection.update(…, {$set: {prénom:’David’}})
{! "_id": "azerty", ! "nom": "wursteisen", ! "prénom": "bob"!}
{! "_id": "azerty", ! "nom": "wursteisen", ! "prénom": "David"!}
![Page 112: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/112.jpg)
Incrémentation db.collection.update(…, {$inc: {recouicoui: 2 }})
![Page 113: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/113.jpg)
Incrémentation db.collection.update(…, {$inc: {recouicoui: 2 }})
{! "_id": "azerty", ! "nom": "wursteisen", ! "recouicoui": 5!}
![Page 114: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/114.jpg)
Incrémentation db.collection.update(…, {$inc: {recouicoui: 2 }})
{! "_id": "azerty", ! "nom": "wursteisen", ! "recouicoui": 5!}
{! "_id": "azerty", ! "nom": "wursteisen", ! "recouicoui": 7!}
![Page 115: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/115.jpg)
Ajout dans un tableau db.collection.update(…, {$push: {contact: ‘Robert’ }})
![Page 116: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/116.jpg)
Ajout dans un tableau db.collection.update(…, {$push: {contact: ‘Robert’ }})
{! "_id": "azerty", ! "contact": ["John", "Bob"] !}
![Page 117: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/117.jpg)
Ajout dans un tableau db.collection.update(…, {$push: {contact: ‘Robert’ }})
{! "_id": "azerty", ! "contact": ["John", "Bob"] !}
{! "_id": "azerty", ! "contact": ["John", "Bob", "Robert"] !}
![Page 118: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/118.jpg)
Index
![Page 119: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/119.jpg)
db.couicoui.ensureIndex({ name:1 })Index simple
![Page 120: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/120.jpg)
db.couicoui.ensureIndex({ name:1, date:-1 })Index composé
![Page 121: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/121.jpg)
db.couicoui.ensureIndex({ geo: ‘2d‘ })Géo index
![Page 122: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/122.jpg)
![Page 123: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/123.jpg)
db.couicoui.ensureIndex({ name:1 }, {expireAfterSeconds: 3600})Index avec Time To Live
![Page 124: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/124.jpg)
db.find({…}).explain()
![Page 125: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/125.jpg)
{ "cursor" : "<Cursor Type and Index>", "n" : <num>, "nscanned" : <num>, "scanAndOrder" : <boolean>, … }
![Page 126: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/126.jpg)
Replica Set
![Page 127: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/127.jpg)
Driver
Primary
Secondary Secondary
![Page 128: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/128.jpg)
Driver
Primary
Secondary Secondary
Écriture
![Page 129: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/129.jpg)
Driver
Primary
Secondary Secondary
Écriture
Réplication
![Page 130: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/130.jpg)
Driver
Primary
Secondary Secondary
Écriture
Réplication Réplication
![Page 131: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/131.jpg)
Driver
Primary
Secondary Secondary
Écriture
Réplication Réplication
Lecture
![Page 132: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/132.jpg)
Driver
Primary
Secondary Secondary
Écriture
Réplication Réplication
Lecture
Lecture
![Page 133: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/133.jpg)
Primary
Secondary Secondary
![Page 134: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/134.jpg)
Primary
Secondary Secondary
Heartbeats
![Page 135: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/135.jpg)
Primary
Secondary Secondary
Heartbeats
![Page 136: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/136.jpg)
Primary
Secondary Secondary
![Page 137: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/137.jpg)
Primary
Secondary Secondary
Primary ?
![Page 138: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/138.jpg)
Primary
Primary Secondary
Primary ?
![Page 139: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/139.jpg)
Primary
Primary Secondary
Primary ?
Réplication
![Page 140: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/140.jpg)
Primary
Primary Secondary
Primary ?
Réplication
![Page 141: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/141.jpg)
Primary
Primary Secondary
Primary ?
RéplicationHeartbeats
![Page 142: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/142.jpg)
Primary
Primary Secondary
Primary ?
RéplicationHeartbeats
![Page 143: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/143.jpg)
Secondary
Primary Secondary
Primary ?
RéplicationHeartbeats
![Page 144: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/144.jpg)
Secondary
Primary Secondary
Primary ?
RéplicationHeartbeats
![Page 145: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/145.jpg)
![Page 146: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/146.jpg)
![Page 147: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/147.jpg)
![Page 148: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/148.jpg)
![Page 149: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/149.jpg)
![Page 150: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/150.jpg)
![Page 151: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/151.jpg)
![Page 152: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/152.jpg)
Write Concernnotification d’écriture
![Page 153: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/153.jpg)
collection.insert(…, WriteConcern.ACKNOWLEDGED); !
db.getLastError();
(dépendant du driver)
![Page 154: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/154.jpg)
collection.insert(…, WriteConcern.ACKNOWLEDGED); !
db.getLastError();
(dépendant du driver)
w=1
![Page 155: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/155.jpg)
collection.insert(…, WriteConcern.ACKNOWLEDGED); !
db.getLastError();
(dépendant du driver)
w=1
bloquant
![Page 156: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/156.jpg)
disable acknowledgmentw=0
![Page 157: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/157.jpg)
Driver
Mongod
![Page 158: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/158.jpg)
write
Driver
Mongod
![Page 159: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/159.jpg)
write
Driver
Mongod
getLastErrorw=0
![Page 160: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/160.jpg)
write
Driver
Mongod
getLastError response
getLastErrorw=0
![Page 161: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/161.jpg)
acknowledgmentw=1
![Page 162: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/162.jpg)
Driver
Mongod
![Page 163: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/163.jpg)
write
Driver
Mongod
![Page 164: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/164.jpg)
write
Driver
Mongod
getLastErrorw=1
![Page 165: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/165.jpg)
write
Driver
Mongod
getLastErrorw=1
apply
![Page 166: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/166.jpg)
write
Driver
Mongod
getLastError response
getLastErrorw=1
apply
![Page 167: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/167.jpg)
write
Driver
Mongod
getLastError response
getLastErrorw=1
apply
bloquant
![Page 168: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/168.jpg)
journalj=1
![Page 169: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/169.jpg)
Driver
Mongod
![Page 170: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/170.jpg)
write
Driver
Mongod
![Page 171: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/171.jpg)
write
Driver
MongodgetLastError
w=1,j=1
![Page 172: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/172.jpg)
write
Driver
MongodgetLastError
w=1,j=1
apply
![Page 173: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/173.jpg)
write
Driver
MongodgetLastError
w=1,j=1
apply write to journal
![Page 174: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/174.jpg)
write
Driver
Mongod
getLastError response
getLastErrorw=1,j=1
apply write to journal
![Page 175: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/175.jpg)
write
Driver
Mongod
getLastError response
getLastErrorw=1,j=1
apply write to journal
bloquant
![Page 176: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/176.jpg)
replica acknowledgmentw=2
![Page 177: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/177.jpg)
Driver
Primary
Secondary
Secondary
![Page 178: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/178.jpg)
write
Driver
Primary
Secondary
Secondary
![Page 179: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/179.jpg)
write
Driver
PrimarygetLastError
w=2
Secondary
Secondary
![Page 180: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/180.jpg)
write
Driver
PrimarygetLastError
w=2apply
Secondary
Secondary
![Page 181: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/181.jpg)
write
Driver
PrimarygetLastError
w=2apply
Secondary
Secondary
replicate
![Page 182: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/182.jpg)
write
Driver
PrimarygetLastError
w=2apply
Secondary
Secondary
replicate
![Page 183: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/183.jpg)
write
Driver
Primary
getLastError response
getLastErrorw=2
apply
Secondary
Secondary
replicate
![Page 184: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/184.jpg)
write
Driver
Primary
getLastError response
getLastErrorw=2
apply
Secondary
Secondary
replicate
bloquant
![Page 185: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/185.jpg)
write
Driver
Primary
getLastError response
getLastErrorw=2
apply
Secondary
Secondary
replicate
replicatebloquant
![Page 186: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/186.jpg)
Sharding
Répartition
![Page 187: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/187.jpg)
collection
![Page 188: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/188.jpg)
Shard2 Shard3Shard1
collection
![Page 189: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/189.jpg)
Shard2 Shard3Shard1
collection
{x: min} {x: max}{x: -11} {x: 50}
![Page 190: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/190.jpg)
Avec une clé de sharding
![Page 191: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/191.jpg)
Mongos
db.collect.find({key: …})
![Page 192: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/192.jpg)
Mongos
db.collect.find({key: …})
![Page 193: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/193.jpg)
Mongos
db.collect.find({key: …})
![Page 194: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/194.jpg)
Mongos
db.collect.find({key: …})
![Page 195: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/195.jpg)
Mongos
db.collect.find({key: …})
![Page 196: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/196.jpg)
Avec une clé non shardé
![Page 197: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/197.jpg)
Mongos
db.collect.find({other: …})
![Page 198: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/198.jpg)
Mongos
db.collect.find({other: …})
![Page 199: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/199.jpg)
Mongos
db.collect.find({other: …})
![Page 200: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/200.jpg)
Clé de sharding pour gérer les messages d’un utilisateur ?
Question :
![Page 201: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/201.jpg)
Cardinalité Répartition en écriture Isolation Fiabilité
_id
![Page 202: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/202.jpg)
ObjectId(« 507f1f77bcf86cd799439011 »)
http://www.mongodb.com/presentations/advanced-sharding-features-mongodb-24
![Page 203: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/203.jpg)
ObjectId(« 507f1f77bcf86cd799439011 »)
http://www.mongodb.com/presentations/advanced-sharding-features-mongodb-24
Timestamp
![Page 204: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/204.jpg)
ObjectId(« 507f1f77bcf86cd799439011 »)
http://www.mongodb.com/presentations/advanced-sharding-features-mongodb-24
Timestamp
Host
![Page 205: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/205.jpg)
ObjectId(« 507f1f77bcf86cd799439011 »)
http://www.mongodb.com/presentations/advanced-sharding-features-mongodb-24
Timestamp
Host
PID
![Page 206: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/206.jpg)
ObjectId(« 507f1f77bcf86cd799439011 »)
http://www.mongodb.com/presentations/advanced-sharding-features-mongodb-24
Timestamp
Host Compteur
PID
![Page 207: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/207.jpg)
ObjectId(« 507f1f77bcf86cd799439011 »)
http://www.mongodb.com/presentations/advanced-sharding-features-mongodb-24
Timestamp
![Page 208: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/208.jpg)
Cardinalité Répartition en écriture Isolation Fiabilité
_id ✓ ✗ ✗ ✗
![Page 209: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/209.jpg)
Mongos
db.collect.insert({…})
![Page 210: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/210.jpg)
Mongos
db.collect.insert({…})
![Page 211: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/211.jpg)
Mongos
db.collect.find({…})
![Page 212: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/212.jpg)
Mongos
db.collect.find({…})
![Page 213: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/213.jpg)
Mongos
db.collect.find({…})
![Page 214: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/214.jpg)
Cardinalité Répartition en écriture Isolation Fiabilité
_id ✓ ✗ ✗ ✗hash(_id) ✓ ✓ ✗ ✗
![Page 215: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/215.jpg)
Mongos
db.collect.insert({…})
![Page 216: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/216.jpg)
Mongos
db.collect.insert({…})
![Page 217: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/217.jpg)
Mongos
db.collect.insert({…})
![Page 218: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/218.jpg)
Mongos
db.collect.insert({…})
![Page 219: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/219.jpg)
Mongos
db.collect.find({…})
![Page 220: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/220.jpg)
Mongos
db.collect.find({…})
![Page 221: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/221.jpg)
Mongos
db.collect.find({…})
![Page 222: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/222.jpg)
Cardinalité Répartition en écriture Isolation Fiabilité
_id ✓ ✗ ✗ ✗hash(_id) ✓ ✓ ✗ ✗
user ✗ ✓ ✓ ✓
![Page 223: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/223.jpg)
Mongos
db.collect.insert({…})
![Page 224: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/224.jpg)
Mongos
db.collect.insert({…})
![Page 225: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/225.jpg)
Mongos
db.collect.insert({…})
![Page 226: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/226.jpg)
Mongos
db.collect.insert({…})
![Page 227: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/227.jpg)
Mongos
db.collect.find({…})
![Page 228: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/228.jpg)
Mongos
db.collect.find({…})
![Page 229: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/229.jpg)
Mongos
db.collect.find({…})
![Page 230: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/230.jpg)
Cardinalité Répartition en écriture Isolation Fiabilité
_id ✓ ✗ ✗ ✗hash(_id) ✓ ✓ ✗ ✗
user ✗ ✓ ✓ ✓user, time ✓ ✓ ✓ ✓
![Page 231: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/231.jpg)
Mongos
db.collect.insert({…})
![Page 232: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/232.jpg)
Mongos
db.collect.insert({…})
![Page 233: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/233.jpg)
Mongos
db.collect.insert({…})
![Page 234: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/234.jpg)
Mongos
db.collect.insert({…})
![Page 235: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/235.jpg)
Mongos
db.collect.find({…})
![Page 236: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/236.jpg)
Mongos
db.collect.find({…})
![Page 237: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/237.jpg)
Mongos
db.collect.find({…})
![Page 238: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/238.jpg)
Aller plus loin…
![Page 241: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/241.jpg)
Demo
![Page 243: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/243.jpg)
Questions ?@dwursteisen
![Page 244: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/244.jpg)
Crédits photos
![Page 245: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/245.jpg)
http://bit.ly/HNvkfZ
http://bit.ly/HGb1BO
http://bit.ly/1d5OVTr
http://bit.ly/1awf0XL
http://bit.ly/MMaRr8
http://bit.ly/1hTARzS
http://bit.ly/1hrvZ7z
http://bit.ly/17SGXwC
http://bit.ly/HNvRP4
![Page 246: MongoDB : la base NoSQL qui réinvente la gestion de données](https://reader034.vdocuments.site/reader034/viewer/2022051411/547a4db8b4af9fe2158b4aad/html5/thumbnails/246.jpg)
http://bit.ly/HGf2Gh
http://bit.ly/1967kv2
http://bit.ly/1c6uCUA