您的位置:首页 > 数据库 > Mongodb

MongoDB 去重 分组(针对于某个field 或者 组合项的去重)

2015-08-28 10:57 453 查看
Document sss的数据如下:






一.根据成条数据(也就是所有field)来去重:

1. 使用mapRrduce函数来去重:






效果如下:






然后我们可以通过遍历的方式把value的不重复myid,age,name拼成我们要的document格式。

 

2. 换一下思路,使用$group方式来实现:






得到的结果是:






二.针对于某个field的去重,不care other field

这里我们要是的是针对于myid这个field来去重:

1.用最最老的方法遍历实现:

 


效果如下:

 

 



2.换一下思路:就是在查重后存放的collection,我们能否先定义好要查重的field的unique index,这样我们在insert数据得时候,就不用考虑是否会重复的问题了。我试了一下,结果如下:

先在我们要存放的collection里面建立unique index:myid,

注意:ensureIndex的时候必须先确定你要去重的field在collection里面重复值

 


再通过foreach()方法把数据一一insert到collection里面,

 



效果如下:

 


 

3.通过mapReduce的方法






出来的效果:

 


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息