2010-04-10 6 views
2

Dans Mongo, je crois comprendre que vous pouvez avoir des bases de données et des collections. Je travaille sur une application de type social qui aura des blogs et des commentaires (entre autres) et qui utilisait auparavant MySQL et un partitionnement assez lourd pour tenter de limiter les problèmes de simultanéité. Avec MySQL, j'ai mis toutes mes données utilisateur dans une base de données _user avec plusieurs tables pour partitionner les données (blogs, pages, etc).MongoDB - Utilisation correcte des collections?

Ma réaction immédiate avec Mongo serait de créer une base de données 'utilisateurs' avec une collection par utilisateur. De cette façon, les entrées de blog 'zach' de l'utilisateur iraient dans la collection 'zach' avec des commentaires associés et deviendraient ainsi des sous-objets dans la même collection. Fondamentalement, comme la création dynamique d'une table par utilisateur dans MySQL, mais apparemment sans la complexité et les limites qui pourraient imposer.

Bien sûr, puisque je n'ai pas vraiment utilisé Mongo avant d'avoir de la difficulté à évaluer la qualité (ahem ..) de cette idée et les problèmes potentiels qu'elle pourrait causer sur la route. Je souhaite que les données utilisateur soient traitées comme un répertoire d'utilisateurs dans un environnement * nix où l'utilisateur créé/non partagé (la plupart du temps) est placé au même endroit (actuellement avec MySQL qui serait l'appname_users comme mentionné au dessus).

La plupart des données des utilisateurs seront spécifiques aux pages des utilisateurs. Certaines des données utilisateur interrogées sur tous les utilisateurs du site (profils utilisateur interrogeables) sont actuellement conservées dans une base de données/table distincte et je pense que de telles données pourraient être placées dans une base de données appname_system et être décomposées en collections et/ou applications spécifiques bases de données (appname_profiles).

Quoi qu'il en soit, étant donné que la documentation disponible sur ce sujet est actuellement un peu mince et que mon expérience est extrêmement limitée, je pense que je pourrais trouver un peu de conseils de quelqu'un qui comprend mieux le système. Du côté positif, j'essayais déjà de traiter MySQL comme un magasin de documents sans schéma et faire cela avec Mongo semble beaucoup plus intuitif/rationnel, donc j'ai vraiment hâte de commencer.

Merci, Zach

Répondre

2

j'ai le même genre d'application. Quelques points à prendre en compte: vous pouvez effectuer une requête croisée entre la collection et non entre les bases de données. Il est donc préférable d'avoir une base de données avec toutes vos données et ensuite une collection pour chaque objet. Ensuite, chaque document peut contenir n'importe quel type et nombre de champs.

J'ai essayé d'éviter l'intégration des réseaux b/c j'avais requête du mal à bien mon objet (il fonctionnait très bien, mais l'architecture de mon système a été conçu pour cet usage)

et une base de données peut être partagée entre plusieurs rompre automatiquement si l'espace n'est pas un problème (si vous avez plus de 1 serveur)

+0

Merci Stunti. Était l'espoir d'une réponse plus liée à la collection, mais les informations de la base de données est une aide précieuse aussi. Comme il ne semble pas que je verrai plus de réponses, je vais accepter la vôtre comme réponse. Merci beaucoup de partager cela! – zmg

+0

Avez-vous un exemple pour une requête qui traverse des collections? – Thilo

Questions connexes