Использование цикла для запроса в mongoDB - PullRequest
1 голос
/ 24 сентября 2011

Я думаю об использовании mongodb в качестве замены для нескольких таблиц mysql, которые требуют много запросов (часто в циклах while / for) для получения всех данных.

Mongo выглядит вполне подходящим решением, потому что я могу запустить javascript непосредственно на консоли, выложить все запросы и получить данные обратно. Мой вопрос заключается в том, будет ли это быстрее / разумнее делать это в монго.

Мои типичные циклы в Mysql пытаются запросить дерево (что-то вроде файловой структуры). Например, мы начинаем с идентификатора 6, затем запрашиваем его родителя с идентификатором 5, а затем его родителя и т. Д. До тех пор, пока не найдем родителя с идентификатором 0. Это может занять много запросов, и я беспокоюсь, что mysql будет складываться под это.

Извините, если я плохо объяснил это: P

1 Ответ

0 голосов
/ 24 сентября 2011

Зависит от того, как вы храните древовидную структуру. Я думаю, что вопрос не в монго против mysql, а в том, как вы справляетесь с хранилищем деревьев.

Похоже, вы сохраняете структуру в виде списка кортежей (id, parent_id). Вместо того, чтобы возвращаться к базе данных для каждой итерации, вы должны получить все наборы одним запросом и использовать простой алгоритм построения дерева для построения структуры (и отфильтровать ее, если вы используете больше атрибутов, чем набор).

Mongo не решит вашу проблему, потому что если вы сохраните каждый узел дерева как документ, вы окажетесь в той же ситуации, в которой находитесь сейчас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...