我的数据库中有大量数据。我有很多重复的。我想删除所有这些重复项,只保留一个数据,
例如,我的登录对象中有这样的数据
身份证 名称
123 美国广播公司
124 美国广播公司
125 美国广播公司
126 美国广播公司
127 pqr
128 个
我只想保留一个名为“abc”的用户并删除所有其他名为“abc”的用户我如何在 mongodb 中实现它提前谢谢
我的数据库中有大量数据。我有很多重复的。我想删除所有这些重复项,只保留一个数据,
例如,我的登录对象中有这样的数据
身份证 名称
123 美国广播公司
124 美国广播公司
125 美国广播公司
126 美国广播公司
127 pqr
128 个
我只想保留一个名为“abc”的用户并删除所有其他名为“abc”的用户我如何在 mongodb 中实现它提前谢谢
一种方法是在用户名上实际创建一个唯一索引,并为其提供 dropDups 的选项:http: //docs.mongodb.org/manual/core/indexes/#drop-duplicates
所以对于你的例子:
db.user.ensureIndex({name:1},{unique:1,dropDups:true})
将在名称上创建一个唯一索引,该索引将删除所有其他重复项。
当然,这样做的双重好处是您现在在名称上有一个唯一索引,可确保您不会再次出现重复项。
您也可以通过 clent 端执行此操作,但它可能比通过构建索引来执行此操作要慢。