2011-12-29 51 views
0

如果我有如下的json,那麼保持這種效果並能夠在數據存儲中增加它的最有效方法是什麼?我應該使用Mongo,因爲我可以堅持嵌套結構,或者使用Redis,這將允許我以原子方式增量?另外,是否有一種結構,我只能更新特定日期的計數器並更新相應的月份和日期計數器?有沒有一個數據存儲,我可以有一個計數器的JSON和增量將填充樹?

{ 
    "summary": [ 
     { 
      "years": [ 
       { 
        "yr": "2008", 
        "cnt": 1222, 
        "net": 333, 
        "months": [ 
         { 
          "mn": "09", 
          "cnt": 642, 
          "net": 1544.4, 
          "days": [ 
           { 
            "dy": "2", 
            "cnt": "3", 
            "net": "4" 
           } 
          ] 
         }, 
         { 
          "mn": "10", 
          "cnt": 3216, 
          "net": 6452.1 
         }, 
         { 
          "mn": "11", 
          "cnt": 327, 
          "net": 572.8 
         } 
        ] 
       } 
      ] 
     } 
    ] 
} 

回答

1

爲了獲得最佳性能,請嘗試Redis。它閃電般快。我不相信Redis的結構允許自動遞增兒童,但由於性能驚人,您可以使用一些腳本來實現。還嵌套結構不會是最大的問題,因爲只要你知道你的元素是什麼類型的結構可以重新創建它:

summary:years:2008:months:days:dy 

等。只要你知道該怎麼稱呼,這很容易做到。例如,如果您希望獲得所有可用年限的集合,則可以爲summary:years等創建一個數組,以便每個動態數組都可以,因此您始終知道哪些元素可用並正確設置。

如果您不希望這些「娛樂」問題和冗餘收藏使用Mongo。只要你能確定你能以某種方式管理自動增量(this document may help you)。但是我不能說一些關於Mongo的東西,因爲我從來沒有用過它。

+0

是的,我認爲我的問題太模糊了..我發現使用Mongoid級聯更新的能力,所以我認爲我要去那裏。感謝您的輸入。 – 2011-12-29 19:52:33

相關問題