#node.js #mongodb #statistics
Вопрос:
У меня есть общий вопрос.
Мое приложение MERN содержит определенные ссылки, связанные с пользователем, которые отображаются широкой публике через профиль пользователя.
Моя цель-отслеживать количество кликов по каждой ссылке, отметки времени,когда были нажаты эти ссылки, и из какой страны/города были сделаны эти клики.
Эта информация используется для предоставления статистики вышеупомянутых кликов пользователю моего приложения.
В настоящее время я использую массив объектов в своей схеме MongoDB, в которую я добавляю объект, содержащий информацию о щелчке, следующим образом:
const ClickDetails = new mongoose.Schema({ country: { type: String, default: "" }, city: { type: String, default: "" }, date: { type: Date, default: ""}, ip_address: { type: String, default: "" }, device: { type: String, default: "" } })
Вот пример схемы ссылок в социальных сетях, в которой я хочу сохранить информацию о своих ссылках в социальных сетях пользователя, используя приведенную выше схему:
social_link_list: [{ link: { type: String, default: "" }, isActive: { type: Boolean, default: false }, click_details: [ClickDetails] // As a user clicks on the link in profile, the click data is pushed to this array }]
Поскольку я буду фильтровать даты в соответствии с требованиями пользователя для анализа, есть ли лучший способ хранения моих данных (или лучшая логика для отслеживания переходов по ссылкам в целом)?
Комментарии:
1. Это похоже на соотношение «один ко многим» между ссылкой и ее деталями. То, как вы планируете хранить, выглядит нормально. Возможно, вам захочется создать несколько образцов данных и написать пару важных запросов, которые вы собираетесь написать, чтобы понять, какая структура данных соответствует вашим требованиям. Создание некоторых образцов данных и написание запросов могут подтвердить ваш дизайн данных.