SlideShare une entreprise Scribd logo
1  sur  58
Node.js + MongoDB
     Mongoose
@jeromegn
★   Auto-didacte
★   Développeur Front-End chez Flowtown
★   Readab.ly
★   Backbone Todos
MongoDB
  10gen
Équivalences
    MySQL             MongoDB

Bases de données   Bases de données

    Tableaux         Collections

    Rangées          Documents
Structure “embeddée”
Base de données

 Collection       Collection
  Document         Document


  Document         Document

                    Document   Document
  Document
Document == JSON
Collection == Array
Requêtes == JS
Demo
Performances?
 Extensibilité?
     (Scalability)
Performances?
 Extensibilité?
     (Scalability)



       Yep!
Flexibilité
Flexibilité

    Migrations
Schémas prédéfinis
Flexibilité


“Schemaless”
MapReduce
map
map
reduce
reduce
mapReduce
npm install mongodb
npm install mongodb



• Implémentation native
npm install mongodb



• Implémentation native
• Inspiré par le “driver” Ruby
npm install mongodb



• Implémentation native
• Inspiré par le “driver” Ruby
• 100% asynchrone
npm install mongodb



• Implémentation native
• Inspiré par le “driver” Ruby
• 100% asynchrone
• github.com/christkv/node-mongodb-native
Exemple: Insert
Exemple: Insert
Exemple: Insert
Exemple: Insert
Exemple: Insert
++;

• “Bare-metal”
• Nativité
• Simplicité
• Données brutes
--;


Organisation du code
Mongoose
 LearnBoost
Avantages

• Modèles (“Classes”)
• Middlewares
• Validation
Définition d’un modèle
Définition d’un modèle
Définition d’un modèle
Modèle “embeddé”
Modèle “embeddé”
Modèle “embeddé”
Instantiation et sauvegarde
Instantiation et sauvegarde
Instantiation et sauvegarde
Instantiation et sauvegarde
Trouver des instances
Trouver des instances
Trouver des instances
Méthodes d’instance et middleware
Méthodes d’instance et middleware
Méthodes d’instance et middleware
Validations
Validations
Validations
Readab.ly
Environnement
• Node.js
• MongoDB
    • Mongoose
• Redis
    • Kue (tjholowaychuk)
• ... sur Dotcloud.com
Modèle `Twitter`
Merci

Contenu connexe

Tendances

MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012FastConnect
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express jsAbdoulaye Dieng
 
Automatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSAutomatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSMongoDB
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Quentin Frémeaux
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introductionToxicode
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs13p
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Quentin Frémeaux
 
2014 applications web sur Azure
2014 applications web sur Azure2014 applications web sur Azure
2014 applications web sur AzureJulien Plée
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007Eric D.
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logiciellejollivetc
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Eric D.
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005Eric D.
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node jsHoracio Gonzalez
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google CloudPierre Coste
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...Horacio Gonzalez
 

Tendances (20)

ToursJUG mongoDB
ToursJUG mongoDBToursJUG mongoDB
ToursJUG mongoDB
 
Présentation de Node.js
Présentation de Node.jsPrésentation de Node.js
Présentation de Node.js
 
REX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerceREX : la webperf chez RueDuCommerce
REX : la webperf chez RueDuCommerce
 
MongoDB day Paris 2012
MongoDB day Paris 2012MongoDB day Paris 2012
MongoDB day Paris 2012
 
Initiation à Express js
Initiation à Express jsInitiation à Express js
Initiation à Express js
 
Automatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMSAutomatisez votre gestion de MongoDB avec MMS
Automatisez votre gestion de MongoDB avec MMS
 
Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)Introduction to Rust in Production - Servo Mozilla project (Slides)
Introduction to Rust in Production - Servo Mozilla project (Slides)
 
NodeJs, une introduction
NodeJs, une introductionNodeJs, une introduction
NodeJs, une introduction
 
Présentation de nodejs
Présentation de nodejsPrésentation de nodejs
Présentation de nodejs
 
Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)Introduction to Rust in Production - Servo Mozilla project (Talk)
Introduction to Rust in Production - Servo Mozilla project (Talk)
 
2014 applications web sur Azure
2014 applications web sur Azure2014 applications web sur Azure
2014 applications web sur Azure
 
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007Utiliser pleinement le navigateur et les nouveaux clients web  - AFUP 2007
Utiliser pleinement le navigateur et les nouveaux clients web - AFUP 2007
 
Jquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter BootstrapJquery Mobile vs Twitter Bootstrap
Jquery Mobile vs Twitter Bootstrap
 
JavaScript dans l'usine logicielle
JavaScript dans l'usine logicielleJavaScript dans l'usine logicielle
JavaScript dans l'usine logicielle
 
Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006Introduction à Rails - Paris on Rails 2006
Introduction à Rails - Paris on Rails 2006
 
CasperJS
CasperJSCasperJS
CasperJS
 
PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005PHP et Performances - AFUP 2005
PHP et Performances - AFUP 2005
 
Enib cours c.a.i. web - séance #6 : introduction à node js
Enib   cours c.a.i. web - séance #6 : introduction à node jsEnib   cours c.a.i. web - séance #6 : introduction à node js
Enib cours c.a.i. web - séance #6 : introduction à node js
 
Meetup Google Cloud
Meetup Google CloudMeetup Google Cloud
Meetup Google Cloud
 
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...ENIB 2015-2016 - CAI Web -  S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
ENIB 2015-2016 - CAI Web - S01E01- Côté navigateur 2/3 - HTML5, CSS3, Twitte...
 

Similaire à Node.js et MongoDB: Mongoose

Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm
 
Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projetjollivetc
 
Ruby et MongoDB dans la pratique, MongoFR
Ruby et MongoDB dans la pratique, MongoFRRuby et MongoDB dans la pratique, MongoFR
Ruby et MongoDB dans la pratique, MongoFRNovelys
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?Microsoft
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloudstefounet
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?benjguin
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSmartnSkilled
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Camille Roux
 
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?Sébastien Prunier
 
Unit test my search
Unit test my searchUnit test my search
Unit test my searchwaizou
 
Quand utiliser MongoDB … Et quand vous en passer…
Quand utiliser MongoDB	… Et quand vous en passer…Quand utiliser MongoDB	… Et quand vous en passer…
Quand utiliser MongoDB … Et quand vous en passer…MongoDB
 
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)Camille Roux
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Laurent Guérin
 
DevCon 2 ; Infra as Code avec Azure
DevCon 2  ; Infra as Code avec AzureDevCon 2  ; Infra as Code avec Azure
DevCon 2 ; Infra as Code avec AzureMichel HUBERT
 
Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Aurélien Maury
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFBoubker ABERWAG
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mvMael Monnier
 
Morning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMorning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMongoDB
 

Similaire à Node.js et MongoDB: Mongoose (20)

Alphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB AdministrationAlphorm.com-Formation MongoDB Administration
Alphorm.com-Formation MongoDB Administration
 
Du JavaScript dans mon projet
Du JavaScript dans mon projetDu JavaScript dans mon projet
Du JavaScript dans mon projet
 
Ruby et MongoDB dans la pratique, MongoFR
Ruby et MongoDB dans la pratique, MongoFRRuby et MongoDB dans la pratique, MongoFR
Ruby et MongoDB dans la pratique, MongoFR
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Server Side Javascript in the cloud
Server Side Javascript in the cloudServer Side Javascript in the cloud
Server Side Javascript in the cloud
 
JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?JavaScript aussi sur le serveur et jusque dans le cloud?
JavaScript aussi sur le serveur et jusque dans le cloud?
 
Support Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutantSupport Formation vidéo: MongoDB pour débutant
Support Formation vidéo: MongoDB pour débutant
 
Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)Pourquoi rails est génial? (version longue)
Pourquoi rails est génial? (version longue)
 
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?
 
Unit test my search
Unit test my searchUnit test my search
Unit test my search
 
NodeJs in real life
NodeJs in real lifeNodeJs in real life
NodeJs in real life
 
Quand utiliser MongoDB … Et quand vous en passer…
Quand utiliser MongoDB	… Et quand vous en passer…Quand utiliser MongoDB	… Et quand vous en passer…
Quand utiliser MongoDB … Et quand vous en passer…
 
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
Pourquoi Ruby on Rails est génial? (d'un point de vue non technique)
 
Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022Microservices-DDD-Telosys-Devoxx-FR-2022
Microservices-DDD-Telosys-Devoxx-FR-2022
 
DevCon 2 ; Infra as Code avec Azure
DevCon 2  ; Infra as Code avec AzureDevCon 2  ; Infra as Code avec Azure
DevCon 2 ; Infra as Code avec Azure
 
Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011Grails from scratch to prod - MixIT 2011
Grails from scratch to prod - MixIT 2011
 
Formation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPFFormation d'architecte logiciel AFCEPF
Formation d'architecte logiciel AFCEPF
 
Maven
MavenMaven
Maven
 
Comparatif des frameworks js mv
Comparatif des frameworks js mvComparatif des frameworks js mv
Comparatif des frameworks js mv
 
Morning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast ConnectMorning with MongoDB Paris 2012 - Fast Connect
Morning with MongoDB Paris 2012 - Fast Connect
 

Node.js et MongoDB: Mongoose

Notes de l'éditeur

  1. \n
  2. \n
  3. MongoDb par la compagnie 10gen\n
  4. C’est un marriage NoSQL et SQL au sens où l’architecture de base est similaire.\n
  5. Base de données -> Collections -> Documents -> Documents -> etc.\n
  6. Tout simplement du JSON! J’adore.\n
  7. Une collection c’est pas mal un Array d’objets JSON.\n
  8. - Les requêtes sont faites dans notre langage préféré: le JavaScript. \n- MongoDB met à notre disposition beaucoup de méthodes sur leurs collections.\n- Dans le “shell” MongoDB on peut utiliser du JavaScript pour intéragir avec des objets.\n
  9. \n
  10. - Pas trop recherché ça, je n’y suis pas encore rendu...\n- mais plus important... (next slide)\n
  11. - Les collections ne tiennent pas rigueur de schémas pour leurs documents.\n- C’est possible d’avoir des documents avec des propriétés complètements différentes dans une même collection\n
  12. - Les collections ne tiennent pas rigueur de schémas pour leurs documents.\n- C’est possible d’avoir des documents avec des propriétés complètements différentes dans une même collection\n
  13. - Les collections ne tiennent pas rigueur de schémas pour leurs documents.\n- C’est possible d’avoir des documents avec des propriétés complètements différentes dans une même collection\n
  14. - C’est une des méthodes d’aggrégation implantées dans MongoDB\n- Pour ceux qui ne connaissent pas, c’est simplement une manière de faire des opérations en batch et d’aggréger les résultats.\n- Je ne suis pas expert là dedans, mais assez pour l’introduire.\n
  15. - Si on veut savoir quels tags reviennent le plus dans les documents d’une collection par exemple\n- La fonction peur “émettre” autant de fois qu’elle veut à la fonction de réduction, étant donné qu’on pourrait avoir plusieurs tags dans notre document, on veut looper pour émettre chaque tag 1 fois.\n
  16. - Notre fonction reduce prend deux paramètres: \n- une “clé” à laquelle on assignera la valeure finale (le “count”)\n- les valeurs qu’on doit “processer”\n- Dans ce cas si, pour chaque fois qu’on a une “clé” certaine clé, on additionne le nombre de fois qu’elle a été rencontré.\n- Désolé pour la clareté je suis encore en train d’apprendre ce bout.\n
  17. - Ensuite on roule la fonction mapReduce sur une collection.\n- On peut retourner les valeurs dans une autre collection ou bien, comme dans cet exemple, les retourner directement dans la console.\n
  18. - Implémentation native en JavaScript\n- Inspiré par le driver en Ruby qui est officiellement maintenu par 10gen (la compagnie qui a créé MongoDB)\n- 100% asynchrone, ça ne bloque pas, comme il se doit sur node.js\n- disponible sur github évidemment\n
  19. - Implémentation native en JavaScript\n- Inspiré par le driver en Ruby qui est officiellement maintenu par 10gen (la compagnie qui a créé MongoDB)\n- 100% asynchrone, ça ne bloque pas, comme il se doit sur node.js\n- disponible sur github évidemment\n
  20. - Implémentation native en JavaScript\n- Inspiré par le driver en Ruby qui est officiellement maintenu par 10gen (la compagnie qui a créé MongoDB)\n- 100% asynchrone, ça ne bloque pas, comme il se doit sur node.js\n- disponible sur github évidemment\n
  21. - Implémentation native en JavaScript\n- Inspiré par le driver en Ruby qui est officiellement maintenu par 10gen (la compagnie qui a créé MongoDB)\n- 100% asynchrone, ça ne bloque pas, comme il se doit sur node.js\n- disponible sur github évidemment\n
  22. - Petit exemple de insert dans une collection:\n- crée la connection\n- définir quelle collection utiliser (remarquez qu’on a pas besoin de la créer!\n- On insère dans la collection une entrée avec la clé “a” et la valeur 2\n- La fonction retourne une erreur s’il y en a une (comme il se doit sur node) et les documents insérés sous forme d’une Array (je pense)\n
  23. - Petit exemple de insert dans une collection:\n- crée la connection\n- définir quelle collection utiliser (remarquez qu’on a pas besoin de la créer!\n- On insère dans la collection une entrée avec la clé “a” et la valeur 2\n- La fonction retourne une erreur s’il y en a une (comme il se doit sur node) et les documents insérés sous forme d’une Array (je pense)\n
  24. - Petit exemple de insert dans une collection:\n- crée la connection\n- définir quelle collection utiliser (remarquez qu’on a pas besoin de la créer!\n- On insère dans la collection une entrée avec la clé “a” et la valeur 2\n- La fonction retourne une erreur s’il y en a une (comme il se doit sur node) et les documents insérés sous forme d’une Array (je pense)\n
  25. - Petit exemple de insert dans une collection:\n- crée la connection\n- définir quelle collection utiliser (remarquez qu’on a pas besoin de la créer!\n- On insère dans la collection une entrée avec la clé “a” et la valeur 2\n- La fonction retourne une erreur s’il y en a une (comme il se doit sur node) et les documents insérés sous forme d’une Array (je pense)\n
  26. - Petit exemple de insert dans une collection:\n- crée la connection\n- définir quelle collection utiliser (remarquez qu’on a pas besoin de la créer!\n- On insère dans la collection une entrée avec la clé “a” et la valeur 2\n- La fonction retourne une erreur s’il y en a une (comme il se doit sur node) et les documents insérés sous forme d’une Array (je pense)\n
  27. - Petit exemple de insert dans une collection:\n- crée la connection\n- définir quelle collection utiliser (remarquez qu’on a pas besoin de la créer!\n- On insère dans la collection une entrée avec la clé “a” et la valeur 2\n- La fonction retourne une erreur s’il y en a une (comme il se doit sur node) et les documents insérés sous forme d’une Array (je pense)\n
  28. - Petit exemple de insert dans une collection:\n- crée la connection\n- définir quelle collection utiliser (remarquez qu’on a pas besoin de la créer!\n- On insère dans la collection une entrée avec la clé “a” et la valeur 2\n- La fonction retourne une erreur s’il y en a une (comme il se doit sur node) et les documents insérés sous forme d’une Array (je pense)\n
  29. Quelques avantages:\n- Bare-metal, on ne peut pas être plus proche de MongoDB que ça sauf directement dans le shell.\n- API très simple et très proche de celle offerte dans le shell MongoDB\n- Parfait pour travailler avec des données brutes\n
  30. Étant donnée que ce sont des données brutes, c’est difficile d’organiser son code et son architecture avec cette librairie.\n
  31. C’est là que Mongoose entre en jeu.\n
  32. - Permet d’organiser son code plus habituellement avec des modèles\n- Ces modèles ont des middleware un peu comme les méthodes de before et after dans ActiveRecord sous Rails\n- Validation des entrées dans la base données au moment de la sauvegarde\n- et plus...\n
  33. Facile de définir un modèle\n- On spécifie son schéma à l’aide d’une structure JSON\n- Puis on l’ajoute aux modèles “trackés” par mongoose (qui va gérer la connection, les collections, etc.)\n\n
  34. Facile de définir un modèle\n- On spécifie son schéma à l’aide d’une structure JSON\n- Puis on l’ajoute aux modèles “trackés” par mongoose (qui va gérer la connection, les collections, etc.)\n\n
  35. Facile de définir un modèle\n- On spécifie son schéma à l’aide d’une structure JSON\n- Puis on l’ajoute aux modèles “trackés” par mongoose (qui va gérer la connection, les collections, etc.)\n\n
  36. Mongoose supporte l’embeddation de documents dans d’autres. On peut les définir comme un Array de modèles dans un autre modèle.\n
  37. Mongoose supporte l’embeddation de documents dans d’autres. On peut les définir comme un Array de modèles dans un autre modèle.\n
  38. Mongoose supporte l’embeddation de documents dans d’autres. On peut les définir comme un Array de modèles dans un autre modèle.\n
  39. - Comme l’instatiation d’un objet JavaScript\n- On peut aussi “pousser” des éléments embeddés dans l’Array de commentaires qu’on a créé auparavant\n- Ensuite on sauvegarde l’instance dans la base de données, ce qui nous retourn une erreur s’il y en a une.\n
  40. - Comme l’instatiation d’un objet JavaScript\n- On peut aussi “pousser” des éléments embeddés dans l’Array de commentaires qu’on a créé auparavant\n- Ensuite on sauvegarde l’instance dans la base de données, ce qui nous retourn une erreur s’il y en a une.\n
  41. - Comme l’instatiation d’un objet JavaScript\n- On peut aussi “pousser” des éléments embeddés dans l’Array de commentaires qu’on a créé auparavant\n- Ensuite on sauvegarde l’instance dans la base de données, ce qui nous retourn une erreur s’il y en a une.\n
  42. - Comme l’instatiation d’un objet JavaScript\n- On peut aussi “pousser” des éléments embeddés dans l’Array de commentaires qu’on a créé auparavant\n- Ensuite on sauvegarde l’instance dans la base de données, ce qui nous retourn une erreur s’il y en a une.\n
  43. - Comme l’instatiation d’un objet JavaScript\n- On peut aussi “pousser” des éléments embeddés dans l’Array de commentaires qu’on a créé auparavant\n- Ensuite on sauvegarde l’instance dans la base de données, ce qui nous retourn une erreur s’il y en a une.\n
  44. - Trouver des documents avec Mongoose c’est assez simple. Accepte tous les mêmes paramètres que le shell MongoDB.\n- Retourne un Array d’instance de modèle Mongoose et non pas des objets brutes.\n
  45. - Trouver des documents avec Mongoose c’est assez simple. Accepte tous les mêmes paramètres que le shell MongoDB.\n- Retourne un Array d’instance de modèle Mongoose et non pas des objets brutes.\n
  46. - Trouver des documents avec Mongoose c’est assez simple. Accepte tous les mêmes paramètres que le shell MongoDB.\n- Retourne un Array d’instance de modèle Mongoose et non pas des objets brutes.\n
  47. Les middlewares et les méthodes d’instance:\n- On a accès à pre et post pour plusieurs méthodes d’un modèle, ici en exemple on a avant la sauvegarde.\n- C’est possible de les rouler en parallèle ou bien en séries (ici en séries)\n\nLes méthodes sont créés en utilisant la fonction “method” sur le schéma.\n
  48. Les middlewares et les méthodes d’instance:\n- On a accès à pre et post pour plusieurs méthodes d’un modèle, ici en exemple on a avant la sauvegarde.\n- C’est possible de les rouler en parallèle ou bien en séries (ici en séries)\n\nLes méthodes sont créés en utilisant la fonction “method” sur le schéma.\n
  49. Les middlewares et les méthodes d’instance:\n- On a accès à pre et post pour plusieurs méthodes d’un modèle, ici en exemple on a avant la sauvegarde.\n- C’est possible de les rouler en parallèle ou bien en séries (ici en séries)\n\nLes méthodes sont créés en utilisant la fonction “method” sur le schéma.\n
  50. On peut valider chaque clés de nos modèles avec une fonction ou un regexp + quelques fonctions built in comme min, max et required.\n
  51. On peut valider chaque clés de nos modèles avec une fonction ou un regexp + quelques fonctions built in comme min, max et required.\n
  52. On peut valider chaque clés de nos modèles avec une fonction ou un regexp + quelques fonctions built in comme min, max et required.\n
  53. Petit projet devenu gros en Node.js qui utilise ces technologies\n
  54. Roule sur DotCloud sous node.js, utilise MongoDB pour stocker ses données et Redis pour gérer ses queues de background jobs (avec la librairie Kue par le fameux TJ Holowaychuk)\n
  55. \n
  56. - Exemple du modèle Twitter dans Readab.ly. Fait usage de relations avec l’ID du user.\n- Ça me fera plaisir de montrer du code de Readab.ly plus tard pour les intéréssés.\n
  57. \n