我很好奇是否有任何最佳實踐將按月/日彙總的集合的指標編入索引。按月或日彙總的指標的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