2014-09-22 47 views
0

我在mongoDB中有一個巨大的對象集合。這些基本上來自從他們的API獲取的購物網站的產品。存儲爲:如何維護MongoDB中的歷史快照

{ 
    "id": "some_id" 
    "baseInfo": { 
     "identifiers": { 
      "attributes": { 
       "description": "some desc" 
       "title": "some title" 
       "price": { 
        "amount": "amount" 
        "currency": "currency" 
       } 
       "....": "..." 
       ... snip .... 
      } 
     } 
    } 
} 

此信息不斷變化,並通過一個python腳本不斷更新其API。

什麼是最簡單的方法來維持什麼時候發生了哪些對象的變化。例如: 在腳本的第N次運行中,在時間T1,ID = I的產品將其價格從P1更改爲P2。同樣,在時間T2,N + 1運行,價格變爲P3。那麼基本上存儲ID = I產品定價歷史的最簡單方法是什麼?

+0

請參閱我對此問題的回答:http://stackoverflow.com/a/30306918/299871 – iamjonesy 2015-05-18 15:23:32

回答

0

我會改變Python腳本來跟蹤新集合中的更改。使用findAndModify更新每個產品並以原子方式檢索舊版本,然後將舊版本推入另一個歷史信息集合,在有效日期(或日期範圍)上添加以及可能添加版本號。您也可以通過計算舊版本和新版本之間的更改並將其存儲在集合中來更改新集合存儲的更改。