我的数据库中有大量数据。而且我有很多重复的东西。我想删除所有这些重复项,并只保留一个数据,
例如我在登录对象中有这样的数据
id 名称
123 abc
124 abc
125 abc
126 abc
127 pqr
128 pqs
我想只保留一个名为“abc”的用户,并删除名称为“abc”的所有其他用户 我怎样才能在mongodb中实现它 提前谢谢
答案 0 :(得分:1)
一种方法是在用户名上实际创建一个唯一索引,并为dropDups提供一个选项:http://docs.mongodb.org/manual/core/indexes/#drop-duplicates
所以对你的例子来说:
db.user.ensureIndex({name:1},{unique:1,dropDups:true})
将在名称上创建一个唯一索引,该索引将删除所有其他重复项。
当然,这样做的双重好处是您现在在名称上有一个唯一索引,可确保您不会再次获得重复项。
你也可以通过巧妙的方面做到这一点,但它可能比通过构建索引做得慢。