我很好奇是否有任何最佳实践将按月/日汇总的集合的指标编入索引。按月或日汇总的指标的MongoDB索引策略
文件例如:
{
track: {
2012: { # year
1: { # month
page_views: ...,
clicks: ...,
visits: ...
},
5: {
page_views: ...,
clicks: ...,
visits: ...
},
...
}
}
编辑:
因为那里有方案探讨怎么回事呢文档如何改进和一些建议,将其分割出来(我已经考虑) 。我会更新为什么要求是他们的方式。该文件用于跟踪用户。随着时间的推移跟踪他们的浏览量,访问量等。用户在文档上有其他数据。例如,这是一个registeration_date。目标是能够说出类似于“向我显示在X日期注册并且在A和B跟踪日期之间具有更多Z页面浏览量的用户”的内容。我一直没有能够想出一个没有嵌入的架构来促进这一点。
更新的文件例如:
{
registration_date: ...,
email: ...,
track: {
2012: { # year
1: { # month
page_views: ...,
clicks: ...,
visits: ...
},
5: {
page_views: ...,
clicks: ...,
visits: ...
},
...
}
}
最佳索引策略取决于您最频繁和最具性能关键的查询。 – Philipp
我会查询大部分指标。为每个可能的date.month创建一个索引似乎很疯狂,并且每次创建新月时都必须更新该索引。如果你在所有的“轨道”上放置一个指数,那么所有的指标都会得到指数收益? – CrashRoX
按照您的想法更新索引不是一种合理的方式,也就是说索引甚至可以工作。嗯听起来像你需要重新思考你的模式,并不是所有的都在这里,但我会说你对你的场景过于规范化 – Sammaye