Mongodb比较两大数据集

时间:2014-01-16 21:51:28

标签: mongodb mapreduce mongodb-java

我要比较两个非常大的集合,主要的操作是两个知道哪个元素被更改或删除 我的集合1和2具有相同的结构,并有300多万条记录 例如: 记录1 {id:'7865456465465',name:'tototo', info:'tototo'}

所以我想知道:什么元素是变化的,什么元素不存在于集合2中。 这样做的最佳解决方案是什么?

2 个答案:

答案 0 :(得分:0)

1)定义2个文件的平等意味着什么。对我来说,它将是:两个文件应包含具有完全相同值的所有字段,因为它们的ID是唯一的。请注意,mongo不保证字段顺序,如果您更新字段,它可能会移动到文档的末尾,这很好。

2)我会使用一些可以连接到mongo并获取数据的框架,同时将其转换为类似地图的数据结构甚至是JSON。例如,我会使用Scala + Lift记录(db.coll.findAll())+ Lift JSON。 Lift JSON库具有Diff函数,可以为您提供2个JSON文档的差异。

3)最后,我将按ID,开放db游标,迭代和比较对两个集合进行排序。

答案 1 :(得分:0)

如果架构在您的情况下是平的,您可以使用免费工具来比较两个表中的数据(dataq.io)。

免责声明:我是该产品的创始人。