最佳答案
背景资料
我正在构建从 RDBMS 数据库到 MongoDB 的转换原型。在反规范化过程中,我似乎有两个选择,一个选择导致产生许多(数百万)较小的文档,另一个选择导致产生较少(数十万)较大的文档。
如果我可以把它提炼成一个简单的模拟,那么它就是拥有更少的 Customer 文档的集合之间的区别(在 Java 中) :
class Customer {
private String name;
private Address address;
// each CreditCard has hundreds of Payment instances
private Set<CreditCard> creditCards;
}
或收集许多,许多付款文件,如下:
class Payment {
private Customer customer;
private CreditCard creditCard;
private Date payDate;
private float payAmount;
}
提问
MongoDB 的设计是倾向于使用许多许多小文档还是使用较少的大文档?答案是否主要取决于我计划运行哪些查询?(即:。客户 X 有多少张信用卡?上个月所有顾客的平均支付金额是多少?)
我已经看了很多,但是我没有碰到任何 MongoDB 模式的最佳实践,它们可以帮助我回答我的问题。