Форум сайта python.su
Есть несколько коллекций с более менее похожими данными ну так получилось. Можно ли как-то сделать запрос сразу к двум коллекциям? Например отсортировать по количеству чего-нибудь. Опыт работы с монго небольшой все что нашел это только запрос к одной коллекции.
Офлайн
По моим данным годичной давности запрос к 2-м коллекциям был невозможен.
Если за это время ничего не изменилось, то…
Почему бы не объединить коллекции в одну?
С другой стороны, можно попробовать map/reduce для каждой коллекции с указанием одинакового имени коллекции в out секции.
После сбора информации использовать это имя временной коллекции в конечном запросе.
Офлайн
LexanderХороший совет.
Почему бы не объединить коллекции в одну?
Офлайн
Интересно, для чего в монго предусмотрена возможность создания множества коллекций, если запросы так ограничены?
Напрашивается оправдание, что это пока ещё молодая разработка и всё несколько сыро…
Кстати, map/reduce обвиняют в некоторой тормознутости, по сравнению с обычным поиском - насколько это соответствует современному положению дел и где их можно оптимизировать?
Отредактировано (Дек. 1, 2011 19:42:55)
Офлайн
Ну в данном случае есть например коллекции “приходная накладная”, “расходный кассовый ордер” и тд. Общего у них тока дата. Объединять их в одну коллекцию совсем не хочется. Но есть отчеты разные где фигурируют документы из этих двух коллекций вместе и их нужно отсортировать по дате допустим. Например акт сверки. Вот и встал вопрос или как то с помощью монго это сделать все таки или все это получать в питон им этот большой массив как то сортировать и выдавать в нужном виде что не удобно.
Офлайн
blessmastermap/reduce тормознутый, потому что являет собой выполнение JavaScript кода. Оптимизация либо JS-кода либо как то реформировать запросы, тут, наверное, нельзя что-то общее посоветовать, все зависит от конкретного случая.
Кстати, map/reduce обвиняют в некоторой тормознутости, по сравнению с обычным поиском - насколько это соответствует современному положению дел и где их можно оптимизировать?
Офлайн
У меня в одном из проектов все данные (разные документы, пользователи, настройки пользователей) были в одной колекции - очень удобно. Отдельные колекции использовались для кеширования, хранения истории, и пр. вспомогательных вещей.
Офлайн
blessmasterВозможность != необходимость.
Интересно, для чего в монго предусмотрена возможность создания множества коллекций, если запросы так ограничены?
Напрашивается оправдание, что это пока ещё молодая разработка и всё несколько сыро…
blessmasterОбвиняющих для начала стоит спросить зачем они используют этот инструмент и с чем сравнивают.
Кстати, map/reduce обвиняют в некоторой тормознутости, по сравнению с обычным поиском - насколько это соответствует современному положению дел и где их можно оптимизировать?
Офлайн
Пасибо общее направление примерно понятно). Придется действительно все собирать в одну коллекцию по возможности.
Офлайн
LexanderКакбэ необходимость требует по зависимости возможность.
Возможность != необходимость
LexanderКакое отношение это имеет к реляционности как качеству БД?
Вы просто пытались применить подход реляционных БД к объектным.
LexanderКаким образом? Что технически ускоряет? Я пока вижу только один фактор - данные одного типа более разрежены, что при чтении требует обращение к большему числу дисковых страниц (вероятность найти соседние записи на одной дисковой странице - ниже).
Размещение в одной коллекции нескольких объектов способствует, в конечном итоге, уменьшению дополнительных обращений к дисковой подсистеме
Lexander1. Тестирование производительности - вполне удовлетворительная цель. О рекомендуемых случаях применения, я бы не против узнать. В данном топике рассматривается один из случаев, когда рекомендуется попробовать. Также стоит учитывать, что map/reduce несколько специфичный инструмент.
Обвиняющих для начала стоит спросить зачем они используют этот инструмент и с чем сравнивают
LexanderИспользование map/reduce автоматически подразумевает выполнение дополнительных запросов?
соответствует хранимым процедурам с несколькими сложными запросами
LexanderСобственно, весь вопрос был о том, насколько медленнее и критичнее в реальных “боевых условиях”, поскольку JavaScript, если я верно понял то, что прочитал о Монго, - блокирующая часть для всей базы, в отличие от хранимых процедур и вероятно, от реализаций map/reduce в других базах, поправьте, если ошибаюсь.
скорости map/reduce вполне достаточно для ее задач
LexanderКак, говорится, “знал бы где упадёшь, - соломки б подстелил”.
если было заранее известно
Офлайн