首页 > 解决方案 > 如何使用 mongoose(NodeJS)删除 mongoDB 中的重复项

问题描述

我在 MongoDB 中有一个集合,其中大约有(约 20 万条记录)。我的样本记录看起来像,

{
    name:String,
    slug:String,
    metaDes:String,
    content:String,
    parentID:String,
    thumbnail:String,
    display:Boolean,
}

我在集合中有很多重复的记录具有相同的slug

我想根据slug 是否有任何快速的方法可以使用猫鼬(Nodejs)删除所有重复项?谢谢!

标签: javascriptnode.jsmongodbmongoose

解决方案


删除集合中具有相同的重复记录slug

db.table.aggregate([
 {
     "$group": {
         _id: {slug: "$slug"},
         slugs: { $addToSet: "$_id" } ,
         count: { $sum : 1 }
     }
 },
 {
     "$match": {
         count: { "$gt": 1 }
     }
 }
]).forEach(function(doc) {
   doc.slugs.shift();
   db.table.remove({
       _id: {$in: doc.slugs}
   });
})

参考链接


推荐阅读