Démarrez votre journée avec une introduction à MongoDB en créant une application web simple basée sur le stack MEAN et en exécutant Serverless sur AWS. Tout d'abord, nous aborderons les bases de la conception de schéma, de la sécurité, des requêtes et de l'indexation. Puis nous déploierons l'application sur AWS à l'aide des API Gateway, Lambda et MongoDB Atlas.
MongoDB .local Paris 2020: Upply @MongoDB : Upply : Quand le Machine Learning...
Construisez votre première application MongoDB
1.
2. Votre première app MongoDB
Nic Cottrell, Ingénieur Services Techniques, MongoDB
4 décembre 2018
Paris, France
3. Les bases de MongoDB:
● Collections,
● Documents JSON,
● CRUD,
● Indexes,
● Aggregation Framework
Visualiser les données MongoDB
Application simple sur le stack MEAN
Agenda
4. Nicholas Cottrell
Technical Services Engineer
nicholas.cottrell@mongodb.com
Normandie, France
stackoverflow.com/users/543315/nic-cottrell
github.com/niccottrell/mongodb-paris-2018
6. Dynamique
et Naturel
Rigide et
Normalisé
{
"_id": "Emp123",
"nom": "Jean Leblanc",
"titre": "Dev superstar",
"telephones": [ "0123456789", "063456789"]
}
Id (VARCHAR) Nom (VARCHAR)
Emp123 Jean Leblanc
Id (VARCHAR) PhoneId (Int)
Emp123 456
Emp123 567
PhoneId Phone (VARCHAR)
456 0123456789
567 063456789
vs
7. {
"_id": 123,
"nom": "Jean Leblanc",
"hps": NumberDecimal("37.5"),
"telephones": [ "0123456789", "063456789"],
"commence": ISODate("2016-10-05"),
"bureau": {
"ville": "Paris",
"lieu": { type: "Point",
coordinates: [2.3333, 48.86] }
},
"equipe": [ { "id": 189, "nom": "Camille Martin"},
{ "id": 256, "nom": "Maxime Lefevre" }, ... ]
}
Les documents - structures de données riches
Champs
Nombre entier
Chaîne de
caractères
Géo-localisation
Nombre à virgule flottante
Tableau de
sous-documents
Date
Décimal
8. {
"_id": 123,
"nom": "Jean Leblanc",
"hps": NumberDecimal("37.5"),
"telephones": [ "0123456789", "063456789"],
"commence": ISODate("2016-10-05"),
"bureau": {
"ville": "Paris",
"lieu": { type: "Point",
coordinates: [2.3333, 48.86] }
},
"equipe": [ { "id": 189, "nom": "Camille Martin"},
{ "id": 256, "nom": "Maxime Lefevre" }, ... ]
...
Les documents - structures de données riches
Champs
Nombre entier
Chaîne de
caractères
Géo-localisation
Nombre à virgule flottante
Tableau de
sous-documents
Interroger et indexer des
données à n'importe quel
niveau
Date
Décimal
9. {
"_id": 284,
"nom": "Melanie Mercier"
"titre": "Developpeur senior"
"commence": ISODate("2017-06-11")
"competences": ["java", "nodejs", "spring data"],
"device": "MacBook Pro 15",
...
}
Les documents sont flexibles
{
"_id": 123,
"nom": "Jean Leblanc"
"titre": "Chef superstar"
"telephones": [ "0123456789", "063456789"]
"commence": ISODate("2016-10-05")
…
}
Schéma polymorphes - aligné avec les principes de la POO
10. {
"_id": 284,
"nom": "Melanie Mercier"
"titre": "Developpeur senior"
"commence": ISODate("2017-06-11")
"competences": ["java", "nodejs", "spring data"],
"device": "MacBook Pro 15",
...
}
Les documents sont flexibles
{
"_id": 123,
"nom": "Jean Leblanc"
"titre": "Chef superstar"
"telephones": [ "0123456789", "063456789"]
"commence": ISODate("2016-10-05")
…
}
Schéma polymorphes - aligné avec les principes de la POO
db.staff.find({titre: /^Developpeur/}, {nom: 1, competences: 1})
11. SQL vs NoSQL
BdD relationnelle MongoDB
Gouvernance des
données
Validation du document et
Schéma JSON
Triggers Change Streams (3.6+)
Jointures $lookup (externe gauche)
Index et vues ✔ et ✔
GROUP BY Framework d'agrégation
12. SQL vs NoSQL
BdD relationnelle MongoDB
Gouvernance des
données
Validation du document et
Schéma JSON
Triggers Change Streams (3.6+)
Jointures $lookup (externe gauche)
Index et vues ✔ et ✔
GROUP BY Framework d'agrégation
NoSQL MongoDB
Haute disponibilité Replica Sets
Scalabilité Sharding
16. MongoDB - le meilleur des deux mondes
Fondations du SGBDR Avantages de NoSQL
Langage d'interrogation
expressif et index secondaires
Intégrité des données
Gestion d'entreprise et
intégrations
La flexibilité
Évolutivité et performance
Déploiement global et
toujours disponible
#1 BdD à la croissance
la plus rapide + de 30 millions téléchargements
uniques
4e BdD la plus populaire + de 5.000 clients payants
+ de 50.000 membres du groupe
d'utilisateurs MongoDB 75% clients du
Global 500
+ de 500.000 étudiants en ligne + de 3.000 clients
Atlas
29. Driver ou ODM?
Driver officiel
Support des dernières
fonctionnalités
Pas un ODM
3ème partie
Peut ne pas supporter les
dernières fonctionnalités
ODM
De facto avec MEAN
32. MongoDB Atlas: DBaaS dans le Cloud
Libre service, élastique
et automatisé
Sécurisé par défaut
Monitoring et métriques
complètes
Globale et haute
disponibilité
Sauvegardes continues et
interrogeables.
Migrations
Organisations, équipes
et projets
33. Mise à jour pour se connecter à Atlas
1. Sécurité
● RBAC (utilisateur et autorisations)
● Liste blanche d'IP
2. Mettre à jour la chaîne de connexion
- SRV e.g.
mongodb+srv://nic:<PASSWORD>@tse-nic-vy6re.mong
odb.net/test?retryWrites=true
3. Migrate data
● mongoimport
● Atlas Live Import
35. On a appris quoi?
Basics
De plus? Serverless Architectures Webinar:
https://www.mongodb.com/presentations/webinar-serverless-architectures-with-aws-lamb
da-and-mongodb-atlas
Atlas Compass