배경
RDBMS 데이터베이스에서 MongoDB 로의 변환을 프로토 타이핑하고 있습니다. 비정규 화하는 동안 두 가지 선택이있는 것 같습니다. 하나는 많은 (수백만) 개의 작은 문서로 이어지고 다른 하나는 더 적은 (수만 개의) 큰 문서로 이어집니다.
간단한 아날로그로 정리할 수 있다면 다음과 같은 고객 문서가 적은 컬렉션 (Java) 간의 차이 일 것입니다.
class Customer { 개인 문자열 이름; 개인 주소 주소; // 각 신용 카드에는 수백 개의 결제 인스턴스가 있습니다. 개인 Set <CreditCard> creditCards; }
또는 다음과 같은 많은 결제 문서가 포함 된 컬렉션 :
class Payment { 개인 고객 고객; 개인 신용 카드 신용 카드; 개인 날짜 payDate; private float payAmount; }
질문
MongoDB는 많은 작은 문서를 선호하거나 적은 수의 큰 문서를 선호하도록 설계 되었습니까? 대답은 주로 내가 실행할 쿼리에 따라 달라 집니까? (즉, 고객 X는 몇 개의 신용 카드를 가지고 있습니까? vs 모든 고객이 지난달에 지불 한 평균 금액은 얼마입니까?)
나는 많이 둘러 보았지만 내 질문에 대답하는 데 도움이 될 MongoDB 스키마 모범 사례를 발견하지 못했습니다.