В каком из двух случаев MongoDB будет производительнее?
Есть аккаунты и транзакции, каждая транзакция имеет сумму, и ссылку на аккаунт.
Надо вывести пользователю информацию по каждому его аккаунту, сколько всего было потрачено, сколько заработано, остаток.
Первый вариант, выводить информацию с помощью agreggation framework'a
Второй вариант, держать на аккаунте поля, заработано, потрачено, итого…. и обновлять их при добавлении/изменении транзакции. При показе юзеру информации, простым find'om выводить объект.
Какой вариант предпочтительнее и производительнее?
Dmitrii Solovev: нет, только это.
добавление транзакции и изменение аккаунта - 2 операции, поэтому если произойдет сбой в этот момент, то 2-я операция может быть не выполнена и данные разойдутся.
Посмотрите про двухфазный коммит, как это можно обруливать.