【发布时间】:2013-08-04 18:55:35
【问题描述】:
假设我有一个应用程序,它接收带有两个参数的请求:X 和 Y。我要做的就是计算这些请求,并且我想使用 MongoDB 来完成任务。
我可以想到两种方法在 MongoDB 中存储该信息:
1。 每个 X 和 Y 组合都有一个文档:
{
_id : "X+Y",
count : 34
}
2。 将 Y 嵌入 X 中,意味着每个 X 都有一个文档,该文档总结了该 X 的所有请求:
{
_id : "X",
total_count : 47,
y: {
"Y1" : 34,
"Y2" : 13
}
}
这些方法的优缺点是什么?
一种方法是否被认为是最佳实践?我还缺少另一种合法的方法吗?这是一个常见的困境吗?
我一直在阅读 MongoDB 的手册 data modeling 部分和 a FAQ discussing this issue,但我并不满意。
谢谢
更新
我的应用预计每天处理大约 50M 的请求,而每个请求包含几个属性(例如 X 和 Y),但数量相对较少(4-5),并且每个请求都应该计算在内(通过插入或更新)。
这些数据将每隔一小时左右查询一次,并且查询预计会使用聚合。这些查询通常会查询最近几天(最多一周)的数据。
【问题讨论】:
标签: mongodb data-modeling