假设我有一个应用程序接收带有两个参数的请求: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 的手动数据建模部分和讨论此问题的常见问题解答,但我并不满意。
谢谢
更新
我的应用预计每天处理50M左右的请求,而每个请求包含几个属性(比如X和Y),但是数量比较少(4-5个),每个请求都要统计(或者通过insert或更新)。
这些数据将每隔一小时左右查询一次,并且查询预计会使用聚合。这些查询通常会查询最近几天(最多一周)的数据。