Каков наиболее эффективный способ заказа коллекций mongoDB? - PullRequest
0 голосов
/ 21 мая 2018

Я использую mongo db для хранения данных трафика веб-сервера.На каждом посещении страницы я хочу хранить несколько типов данных, таких как:

  • Информация HTTP-запроса
  • Информация о клиентской аналитике
  • и т. Д.

эти типы данных принимаются от разных конечных точек для разных доменов, а иногда и не для всех.

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

Моя текущая структура БД:

коллекций:

  • data_type1
  • data_type2 ... (больше коллекций для каждого типа данных)
  • доменов (концентрация всех доменов, ссылающихся на связанные типы данных)
  • пользователей (концентрация всех пользователей, ссылающихся на связанные типы данных)

документы:

data_type1: {_id: ABCD, данные: raw_data (включая пользователя и домен)}

data_type2: {_id: XYZ, данные: raw_data (включая пользователя и домен)} *

доменов: {домен: xxx.xx, data_type1:[ABCD, (другой связанный)], data_type2: [XYZ, (другой связанный)]}

пользователи: {user: qwerty, data_type1: [(user data_type1 related docs _id)], data_type2: [(user data_type2related docs _id)]}

Я пробовал по-разному, меня беспокоит то, что для каждого пользователя или домена массивы, ссылающиеся на data_types, могут расти бесконечно, особенно при обработке миллионов запросов.

Учитывается ли этот порядокэффективный?Вы можете предложить лучшую структуру?Спасибо!

1 Ответ

0 голосов
/ 05 июня 2018

Найдено руководство по улучшению структуры в этом блоге: https://www.mongodb.com/blog/post/6-rules-of-thumb-for-mongodb-schema-design-part-3

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