最佳答案
背景资料
我正在构建从 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 模式的最佳实践,它们可以帮助我回答我的问题。