MongoDB文档数据库设计决策

时间:2013-12-13 16:20:01

标签: mongodb document-database

文档数据库入门,我对设计决策有疑问。 我将插入包含金融交易的数据很多天。 不确定我是否应该将每笔交易作为一个文档,或者为所有数据制作一个文档,这将涵盖很多天。

该应用程序的主要用途是以多种方式分析数据,包括特定日期和日期范围。

做出此决定有哪些注意事项?

2 个答案:

答案 0 :(得分:0)

如果您希望根据各个交易报告和分析数据(即按product_id,value,买方,日期等切割),那么理想情况下,这将是文档类型,允许根据需要进行索引。如果您创建的单个文档类型只是一个事务列表,我认为mongo很难帮助您完成索引。

答案 1 :(得分:0)

数据库的设计应反映软件层将要执行的功能。 MongoDB应该尽可能少地将结果返回给您的应用程序,因此在运行查询时需要尽可能少地重新整形的方式建模数据将是理想的选择。当您想要从多个不同角度处理数据时,这可能会非常棘手。根据我的经验,即使使用最通用的数据集,也总是会比其他字段更频繁地查询字段。对于财务数据,我猜这可能是一段时间或一个人/组织。这些是您希望按和/或索引对数据进行分组的字段。对于真正的通用数据模型,我可能只是为每个事务创建一个文档,索引事务日期降序(以便更快地返回更新的事务),然后尽可能具体地索引所有关键字段。