2014-01-16 160 views
0

我想比較兩個很大的集合,操作的主要是兩個知道元素是否改變或刪除 我的集合1和2具有相同的結構並且具有更多的300萬條記錄 示例: 記錄1 {id:'7865456465465',name:'tototo', info:'tototo'}Mongodb比較兩個大數據集合

所以我想知道:哪些因素是變化的,什麼元素不存在於收集2. 什麼是做到這一點的最佳解決方案?

+0

您是否確定某些文件已更改? –

+0

Asya,是的,我想知道一個元素是否被刪除或更改。 – timactive

+0

只需開始循環,追蹤成功/失敗。沒有比強力比較更好的選擇。 – WiredPrairie

回答

0

1)定義2個文檔的含義是什麼意思。對我來說,這將是:兩個文件應該包含具有完全相同值的所有字段,因爲它們的id是唯一的。請注意,mongo不保證字段順序,如果更新字段,它可能會移動到文檔的末尾,這很好。

2)我會使用一些框架,可以連接到mongo並同時獲取數據,並將其轉換爲類似地圖的數據結構甚至是JSON。例如,我會用Scala + Lift記錄(db.coll.findAll())+提升JSON。提升JSON庫具有Diff函數,可以給你2個JSON文檔的差異。

3)最後,我會通過ID排序這兩個集合,打開數據庫光標,迭代和比較。

+0

我研究其實你的方法謝謝 – timactive