2017-08-18 2 views
-4

Je suis très novice dans le développement de la pile complète et j'ai besoin d'aide pour justifier l'utilisation de MongoDB pour mon application Web. J'utilise aussi mongoose et sa solution basée sur un schéma pour modéliser les données d'application.Justification de l'utilisation de MongoDB

J'ai construit une application web simple (site Web) qui montre des projets d'art de la galerie. Pendant le développement, je découvrais constamment que j'avais besoin de champs supplémentaires dans mes schémas. Parce que MongoDB est très flexible et permet une modification dynamique du schéma, cela est très utile.

Une autre chose que je trouve très attrayante est que MonogDB utilise la notation JSON (JavaScript Object Notation) qui est lisible par les humains et les machines. Parce que je ne suis pas familier avec le système de gestion de base de données relationnelle et les bases de données relationnelles, je ne sais pas maintenant ce que l'utilisation de MongoDB par rapport à d'autres.

Aidez-nous s'il vous plaît.

+3

Eh bien, comme vous l'avez dit, vous n'avez vu qu'un côté. Pour tout ce que vous savez, vous avez peut-être choisi la pire technologie. Mais comment pouvez-vous dire, si vous ne savez pas ce que les bases de données relationnelles peuvent faire? Vous devez également acquérir de l'expérience dans le monde relationnel. (Terminez la construction de cette application et reconstruisez-la avec mysql ou autre) Sinon, vous ne pouvez pas justifier de manière crédible l'utilisation de mongodb, parce que vous seriez juste en train de répéter ce que vous avez entendu sur les internets sans savoir si ces choses sont vraies ou ne pas. –

+2

Vous essayez déjà de prétendre qu'une chose est meilleure que l'autre sans rien savoir de l'autre. C'est ridicule. (Et pour ce que ça vaut, MongoDB est injustifiable.) – Ryan

Répondre

-1

Dans MongoDB, les données ne sont pas stockées sous forme de tableau. Ils sont représentés en tant que documents. En termes simples, vous économisez beaucoup de temps lorsque vous devez mettre à jour ou modifier des informations. Dans MySQL, vous devez écrire une requête séparée pour chaque petite chose. Mais ici vous pouvez modifier dynamiquement les données, en très peu de temps. Dans MongoDB vous pouvez stocker n'importe quel type de données. Vous pouvez facilement y accéder aussi. C'est la base de données qui croît le plus rapidement.

Eh bien, MongoDB ne prend pas en charge joint les opérations, mais utilise plutôt des types de données multidimensionnels. Il n'a aucun support pour transactions aussi, ni rollbacks (la possibilité de revenir à la transaction précédente). Lorsque vous devez gérer une grande quantité de données, il est préférable d'utiliser MongoDB. L'inconvénient de MySql est qu'il stocke les données sous forme de tableau, ce qui n'est pas efficace. Cet inconvénient est surmonté par MongoDB.

+1

Votre explication est très vague. Aussi, pourquoi comparez-vous MongoDB seulement à MySQL? Il existe de nombreuses bases de données relationnelles, MySQL n'est certainement pas le meilleur ni le plus rapide. Un contexte de données comme StackOverflow est construit sur SQL Server et possède une énorme quantité de données, changeant très rapidement, répandant des informations dans le monde entier. Malgré cela, il est très efficace et rapide. Aussi, aujourd'hui, il existe de nombreux ORM avancés qui permettent de changer la structure de la base de données très rapidement, aussi vite que vous changez les classes dans votre code, donc ce n'est pas un gros avantage de MongoDB. –

1

Si vous avez une application qui nécessite des transactions (opérations par lots atomiques Tout ou rien) et que vous ne voulez pas mettre à l'échelle votre base de données sur plusieurs instances, n'utilisez pas Mongodb mais utilisez un système de base de données SQL. Mongodb est utilisé comme base de données pour les données qui ne respectent généralement pas certains schémas, tandis que les systèmes de base de données SQL requièrent un schéma, et donne une couche pour valider les données avant de les sauvegarder dans la base de données. Lorsque vous travaillez avec des documents (versions de la ligne Mongodb), il y a quelques astuces quand il s'agit d'appliquer des associations à d'autres documents, qui ne suivent généralement pas certaines règles de normalisation et dépendent de ce dont vous avez besoin. . Parfois, si un document de la collection A est en relation avec le document de la collection B, vous pouvez ajouter un ID de référence (clé étrangère), le document entier ou la clé étrangère plus les champs souhaités pour éviter de lire un autre document. Mongodb possède également la structure d'agrégation, qui est la fonction bultin, pour effectuer des opérations de calcul sur un grand ensemble de données, qui est stocké dans différents nœuds qui résident sur des hôtes différents. Lorsque vous avez tellement de données et que vous voulez les mettre à l'échelle sur une base de données SQL, vous devez stocker toutes les données sur l'hôte unique, ou le même réseau, et vous devrez vous adapter verticalement; Avec Mongodb, vous pouvez avoir beaucoup de matériel de base à l'échelle sur vos données. Parlant de l'architecture de Mongodb, il donne une énorme évolutivité, Mongodb fournit un système de sharding, qui vous donne la possibilité de découper votre base de données en différents fragments, chaque fragment suit une sorte de règle.Et une haute disponibilité, avec récupération instantanée grâce au système de jeu de réplicas, où chaque fois qu'un nœud primaire tombe que lui seul peut écrire, les nœuds secondaires (qui ne font que lire) élisent un nœud pour prendre sa place.

Le plus important est de se souvenir du type de données que vous allez sauvegarder. Si vos données n'ont pas de schéma stable et que vous avez tellement de transactions (vital), n'utilisez pas mongodb. N'oubliez pas que vous pouvez utiliser les deux systèmes de bases de données, chacun pour ce dont vous avez besoin.