Хранение информации о кликах пользователя на MongoDB с помощью NodeJS

#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. Это похоже на соотношение «один ко многим» между ссылкой и ее деталями. То, как вы планируете хранить, выглядит нормально. Возможно, вам захочется создать несколько образцов данных и написать пару важных запросов, которые вы собираетесь написать, чтобы понять, какая структура данных соответствует вашим требованиям. Создание некоторых образцов данных и написание запросов могут подтвердить ваш дизайн данных.