2011-09-24 5 views
1

Je pense utiliser mongodb en remplacement de quelques tables mysql qui nécessitent beaucoup de requêtes (souvent dans while/for loops) pour récupérer toutes les données.Utiliser une boucle pour interroger dans mongoDB

Mongo me semble être un bon choix car je peux exécuter javascript directement sur la console et mettre en page toutes les requêtes et recevoir les données. Ma question est de savoir si ce serait plus rapide ou plus logique de le faire en Mongo.

Mes boucles typiques dans Mysql essayent d'interroger un arbre (un peu comme une structure de fichier). Par exemple, nous commençons par l'id 6, puis nous interrogons son parent qui est l'id 5, puis son parent, etc etc jusqu'à ce que nous trouvons un parent qui se termine par l'id 0. Cela peut prendre beaucoup de requêtes et je crains que mysql va se coucher sous cela.

Désolé si je l'ai expliqué mal: P

Répondre

0

Cela dépend comment vous stockez l'arborescence. Je pense que la question ne concerne pas vraiment mongo vs. mysql, mais plutôt comment vous faites face au stockage des arbres.

Il semble que vous stockiez la structure sous la forme d'une liste de tupples (id, parent_id). Au lieu de retourner à la base de données pour chaque itération, vous devriez obtenir tous les tupples avec une requête et utiliser un algorithme de construction d'arbre simple pour construire la structure (et filtrer si vous utilisez plus d'attributs que le tupple).

Mongo ne résoudra pas votre problème, car si vous stockez chaque nœud d'arbre en tant que document, vous allez vous retrouver dans la même situation que vous êtes maintenant.

Questions connexes