Это зависит.
Это зависит от того, сколько из каждого из этих типов объектов вы ожидаете иметь. Можете ли вы разместить их все в одном документе MongoDB для данного пользователя? Вероятно, нет.
Это зависит от отношений - является ли учетная запись пользователя отношением «один ко многим» или «многие ко многим»? Если это один ко многим, а количество учетных записей невелико, вы можете поместить их в список IList в документе пользователя.
Вы все еще можете моделировать отношения в MongoDB с отдельными коллекциями, НО в базе данных нет соединений, поэтому вы должны сделать это в коде. Загрузка пользователя, а затем загрузка его учетных записей может быть вполне приемлемой с точки зрения производительности.
Вы можете индексировать массивы INTO по документам. Не думайте, что индекс - это просто индекс простого поля в документе (например, SQL). Вы можете использовать, скажем, коллекцию тегов в документе и индексировать теги. (См. http://www.mongodb.org/display/DOCS/Indexes#Indexes-Arrays)
При получении или записи данных вы можете выполнять частичное чтение и частичную запись любого документа. (см. http://www.mongodb.org/display/DOCS/Retrieving+a+Subset+of+Fields)
И, наконец, когда вы не видите, как получить то, что вы хотите, с помощью коллекций и индексов, вы можете достичь этого с помощью карты редукции. Например, чтобы найти все используемые в настоящее время теги, отсортированные по частоте их использования, вы должны map каждый документ, испускающий используемые в нем теги, а затем уменьшить , установленный для получения результат, который вы хотите. Затем вы можете сохранить результат этой карты постоянно и обновлять его только тогда, когда вам нужно.
Еще одна проблема: вы упоминаете вычисление итогов по тегам. Если вам нужна согласованность транзакций с бухгалтерским качеством, MongoDB может оказаться не лучшим выбором для вас. «Eventual-консистентность» - это название игры для хранилищ данных NoSQL, и они обычно не подходят для финансовых транзакций. Например, не имеет значения, видит ли один пользователь сообщение в блоге с 3 комментариями, а другой - 4, потому что они сталкиваются с разными копиями реплик, которые еще не синхронизированы, но для финансового отчета такая согласованность имеет значение - ваша отчет может не складываться!