3 回答

TA貢獻(xiàn)1900條經(jīng)驗(yàn) 獲得超5個(gè)贊
潛入這個(gè)問(wèn)題的第一個(gè)重要問(wèn)題是“你想如何存儲(chǔ)變更集”?
比較速度?
整個(gè)記錄副本?
我個(gè)人的方法是存儲(chǔ)差異。因?yàn)檫@些差異的顯示實(shí)際上是一個(gè)特殊的動(dòng)作,所以我會(huì)將差異放在不同的“歷史”集合中。
我會(huì)使用不同的集合來(lái)節(jié)省內(nèi)存空間。您通常不希望簡(jiǎn)單查詢的完整歷史記錄。因此,通過(guò)將歷史記錄保留在對(duì)象之外,您還可以在查詢數(shù)據(jù)時(shí)將其保留在常用內(nèi)存中。
為了讓我的生活更輕松,我會(huì)讓歷史文檔包含時(shí)間戳差異字典。像這樣的東西:
{ _id : "id of address book record", changes : { 1234567 : { "city" : "Omaha", "state" : "Nebraska" }, 1234568 : { "city" : "Kansas City", "state" : "Missouri" } }}
為了讓我的生活變得非常簡(jiǎn)單,我將使用我用來(lái)訪問(wèn)我的數(shù)據(jù)的DataObjects(EntityWrapper,無(wú)論如何)。通常,這些對(duì)象具有某種形式的歷史記錄,因此您可以輕松地覆蓋save()
方法以同時(shí)進(jìn)行此更改。
看起來(lái)現(xiàn)在有一個(gè)處理JSON差異的規(guī)范。這似乎是一種更健壯的方式來(lái)存儲(chǔ)差異/變化。

TA貢獻(xiàn)1847條經(jīng)驗(yàn) 獲得超11個(gè)贊
我使用下面的包用于meteor / MongoDB項(xiàng)目,它運(yùn)行良好,主要優(yōu)點(diǎn)是它將歷史/修訂存儲(chǔ)在同一文檔中的數(shù)組中,因此無(wú)需額外的出版物或中間件來(lái)訪問(wèn)更改歷史記錄。它可以支持有限數(shù)量的先前版本(例如,前十個(gè)版本),它還支持更改連接(因此在特定時(shí)間段內(nèi)發(fā)生的所有更改將由一個(gè)修訂版覆蓋)。
另一個(gè)聲音選項(xiàng)是使用Meteor Vermongo(這里)
- 3 回答
- 0 關(guān)注
- 1328 瀏覽
添加回答
舉報(bào)