Предпосылки
Я создаю прототип преобразования нашей базы данных СУБД в MongoDB. При денормализации кажется, что у меня есть два варианта: один ведет к множеству (миллионам) меньших документов, а другой ведет к меньшему количеству (сотням тысяч) больших документов.
Если бы я мог свести его к простому аналогу, это была бы разница между коллекцией с меньшим количеством документов Customer, подобными этой (на Java):
class Customer {
частное строковое имя;
частный адресный адрес;
// каждая CreditCard имеет сотни экземпляров Payment
частные кредитные карты Set <CreditCard>;
}
или коллекция с большим количеством Платежных документов, подобных этой:
class Payment {
частный заказчик;
частная CreditCard CreditCard;
приватная дата payDate;
private float payAmount;
}
Вопрос:
Разработана ли MongoDB для предпочтения большого количества маленьких документов или меньшего количества больших документов? Зависит ли ответ в основном от того, какие запросы я планирую запустить? (т.е. Сколько кредитных карт у клиента X? Какая средняя сумма была выплачена всеми клиентами в прошлом месяце?)
Я много оглядывался, но не наткнулся на какие-либо передовые практики схемы MongoDB, которые помогли бы мне ответить на мой вопрос.