@dimonnwc3

Как сделать историю в Mongodb … SQL?

Есть коллекция счета, с документами такого типа:
{
  name: "Bank",
  summ: 1000
}

Хочу выводить статистику(график) по месяцам. Какое состояние счета, было на 1.1, 1.2, .1.3, 1.4, .1.5 и так далее.

Есть какие то триггеры, которые к примеру каждого первого числа пушат в массив history, текущую дату и сумму?

Как правильно реализовать такую историю в mongo?
Как подобные вещие реализуются в SQL ДБ?
  • Вопрос задан
  • 383 просмотра
Пригласить эксперта
Ответы на вопрос 2
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Есть какие то триггеры, которые к примеру каждого первого числа пушат в массив history, текущую дату и сумму?
Это-то можно делать с помощью cron. Но нет смысла.

Обычно просто хранят начальное состояние счета и все операции; когда нужно, берут эту начальную сумму и «проигрывают» все операции и получают текущую сумму (конечно, для скорости текущее состояние тоже можно кэшировать). Люди любят видеть историю своего счета и понимать, откуда взялась именно такая сумма.
Таким же образом можно получать и состояния счета на каждый месяц, просто находим все транзакции от даты открытия счета до последнего числа предыдущего месяца и «воспроизводим» их.

P.S. Алгоритм тут не меняется, SQL или NoSQL.
Ответ написан
Теоретическая часть:

Про SQL: стандарт SQL:2011, средства для темпоральных баз данных. Пока поддерживается не всеми вендорами, но можно взять за основу при написании велосипеда.

Про Монгу особо ничего не скажу, посмотрите вот это:
https://github.com/thiloplanz/v7files/wiki/Vermongo
https://github.com/saintedlama/mongoose-version
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы