版本相關Ways to implement data versioning in MongoDB和structure of documents for versioning of a time series on mongodbMongoDB的:數據與搜索
我應該採取的版本時,我還需要能夠處理查詢什麼數據結構?
假設我有每個月我得到了約30文檔更改noFTEs
的細節形式
{ _id: '12345-11',
noFTEs: 5
}
的8500個文件,我想存儲新的數據與前一個部分(s) ,連同日期。
這似乎導致:
{ _id: '12345-11',
noFTEs: {
'2015-10-28T00:00:00+01:00': 5,
'2015-1-8T00:00:00+01:00': 3
}
}
但我也希望能夠做的最近期數據搜索(例如noFTEs > 4
,和元素應被視爲5,而不是3)。在那個階段,我所知道的是我想使用最新的數據,並且不知道密鑰。因此,替代將是一個數組
{ _id: '12345-11',
noFTEs: [
{date: '2015-10-28T00:00:00+01:00', val: 5},
{date: '2015-1-8T00:00:00+01:00', val: 3}
}
}
另一種方法 - 通過在下面的意見建議@thomasbormans - 將
{ _id: '12345-11',
versions: [
{noFTEs: 5, lastModified: '2015-10-28T00:00:00+01:00', other data...},
{noFTEs: 3, lastModified: '2015-1-8T00:00:00+01:00', other...}
}
}
我會很感激有關注意事項的一些見解,我需要前進行一路跳來跳去,我擔心我會產生一個對於Mongo來說工作量非常大的查詢。 (實際上,還有其他3個可合併搜索的字段,其中一個字段也可能會隨時間而發生變化。)
我最近通過添加'版本'數組來實現版本控制。更新文檔時,未編輯的文檔將被複制並推送到版本數組中。因爲我的文檔有一個'lastModified'字段,所以我可以獲得所有版本的編輯日期。 –
您是否可以搜索數據的最新條目 –
我只查詢當前文檔,但是您可以$展開數組並執行聚合函數。 –