У меня есть особые требования к манипулированию данными, которые я разработал, как выполнять в SQL Server и PostgreSQL. Однако я не очень доволен скоростью, поэтому я исследую MongoDB.
Лучший способ описать запрос - это следующее. Представьте себе иерархические данные США: страна, штат, округ, город. Допустим, конкретный поставщик может обслуживать всю Калифорнию. Другой может обслуживать только Лос-Анджелес. Потенциально существуют сотни тысяч поставщиков, и все они могут обслуживать с некоторой точки (точек) в этой иерархии вниз. Я не путаю это с Geo - я использую это, чтобы проиллюстрировать необходимость.
Используя рекурсивные запросы, довольно просто получить список всех поставщиков, которые могут обслуживать конкретного пользователя. Если бы он был, скажем, в Пасадене, Лос-Анджелесе, Калифорнии, мы бы пошли вверх по иерархии, чтобы получить применимые идентификаторы, а затем запросили бы обратно, чтобы найти поставщиков.
Я знаю, что это можно оптимизировать. Опять же, это простой пример запроса.
Я знаю, что MongoDB - это хранилище документов. Это очень хорошо подходит для других моих нужд. Вопрос в том, насколько он подходит для описываемого мною типа запроса? (Я знаю, что у него нет соединений - они смоделированы.)
Я понимаю, что это вопрос "какова длина отрезка строки". Я просто хочу знать, есть ли у кого-нибудь опыт работы с MongoDB в подобных делах. Мне может потребоваться некоторое время, чтобы перейти от 0 к тестированию, и я хочу сэкономить время, если MongoDB не подходит для этого.
ПРИМЕР
Местный магазин фильмов «A» может поставлять Blu-Ray в Спрингфилд. Сеть магазинов «B» с распространением по всему штату может поставлять Blu-Ray для всей IL. А магазин с загрузкой по запросу "C" может поставлять товары во все США.
Если бы мы хотели получить всех подходящих поставщиков фильмов для Спрингфилда, штат Иллинойс, ответ был бы [A, B, C].
] Другими словами, существует множество поставщиков, прикрепленных к разным уровням иерархии.