2014-01-16 266 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