web-dev-qa-db-fra.com

Mongodb vs Postgres dans une application Nodejs

Je suis en train de créer une application nodejs et je suis complètement partagé entre nosql mongodb vs rmds PostregresSql. Mon projet est de créer un exemple de projet open source pour enregistrer les visiteurs et afficher les statistiques des visiteurs en temps réel sur une page Web en utilisant nodejs. J'avais l'intention d'utiliser mongodb au début, car beaucoup d'exemples et de tutoriels nodejs, principalement des plus anciens, l'ont utilisé et les hébergeurs paas avec un teir gratuit abondent. Cependant, je voyais beaucoup de dénigrement sur mongodb récemment et j'ai constaté que les gens qui essayaient d'utiliser mongodb finissaient par passer aux postgres. http://blog.engineering.kiip.me/post/20988881092/a-year-with-mongodbhttp://dieswaytoofast.blogspot.com/2012/09/mysql- vs-postgres-vs-mongodb.htmlhttp://www.plotprojects.com/why-we-use-postgresql-and-slick/ Je suis aussi un fan de heroku et j'ai entendu beaucoup de choses sur la postgression à cause de cela et constatons que les requêtes SQL peuvent parfois être Nice.

Je ne suis pas un expert en bases de données, donc je ne peux pas dire pour ma vie où aller. Je vous conseillerais vraiment si vous pouviez donner des conseils sur lequel considérer et pourquoi.

J'ai quelques critères:

  1. Puisque je veux que ce soit un exemple, ce serait bien d'avoir un moyen d'héberger une quantité de données de taille décente. Je sais que mongodb offre cela avec défi, mais les paas postgres comme heroku semblent avoir de très petites bases de données (puisque je connecte chaque visiteur sur le site)

  2. Une base de données simpliste et facile à expliquer aux autres.

  3. Les performances n'ont pas vraiment d'importance, mais la vitesse ne peut pas nuire

Merci pour toute l'aide!

Note : S'il vous plaît pas de guerres de flammes, tout le monde a sa propre opinion :)

35
joshua-anderson

Le choix entre une base de données SQL et une base de données NoSQL est certainement très débattu en ce moment et il y a beaucoup de bons articles sur le sujet. J'en énumérerai deux à la fin. Je n'ai aucun problème à recommander SQL sur NOSQL pour vos besoins particuliers.

NoSQL a un groupe de créneaux d'utilisation où les données sont stockées dans de grands packages étroitement couplés appelés documents plutôt que dans un modèle relationnel. En un mot, les données étroitement couplées à une seule entité (comme tous les documents texte utilisés par un seul utilisateur) sont mieux stockées dans un modèle de document NoSQL. Les données qui se comportent comme des feuilles de calcul Excel et s'intègrent bien dans les lignes et sont soumises à des calculs agrégés sont mieux stockées dans une base de données SQL dont postgresql n'est qu'un des nombreux bons choix.

Une troisième option que vous pourriez envisager est redis ( http://redis.io/ ), qui est un simple magasin de données de valeurs clés extrêmement rapide lors de requêtes comme SQL mais pas aussi typé de manière rigide.

L'exemple que vous citez semble être un problème simple de type ligne/colonne. Vous constaterez que la syntaxe SQL est beaucoup moins mystérieuse que la syntaxe de requête pour MongoDB. Node a beaucoup de choses à recommander et le jeu d'outils a mûri considérablement au cours de la dernière année. Je recommanderais d'utiliser le package monogoose npm car il réduit la quantité de code passe-partout cela est nécessaire avec mongodb natif et je n'ai remarqué aucune dégradation des performances.

http://slashdot.org/topic/bi/sql-vs-nosql-which-is-better/

http://www.infoivy.com/2013/07/nosql-database-comparison-chart-only.html

22
Nathaniel Johnson