如何使用 mongoose(NodeJS) 删除 mongoDB 中的重复项

vy.*_*ham 2 javascript mongoose mongodb node.js

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

{
    name:String,
    slug:String,
    metaDes:String,
    content:String,
    parentID:String,
    thumbnail:String,
    display:Boolean,
}
Run Code Online (Sandbox Code Playgroud)

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

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

Moh*_*ony 7

删除集合中具有相同内容的重复记录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}
   });
})
Run Code Online (Sandbox Code Playgroud)

参考链接