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

标签 javascript node.js mongodb mongoose

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

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

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

我想根据slug删除重复记录 有没有快速的方法可以用 mongoose(Nodejs) 删除所有重复项? 谢谢!

最佳答案

删除集合中具有相同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}
   });
})

引用link

关于javascript - 如何使用 mongoose(NodeJS) 删除 mongoDB 中的重复项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61167739/

相关文章:

javascript - 绑定(bind)动态服务器响应(嵌套 json)

mongodb - 按mongo中文档数组中的元素数排序

javascript - Google Analytics - 它如何跟踪点击次数?

php - 制作一个恒定的标题 - css 问题

node.js - 发布周期的 Github 结构

node.js - 没有引用选项的 Mongoose 填充字段

mongodb - 在 alpine linux 上执行 mongodb 二进制文件

javascript - Cordova 应用程序的 Facebook channel URL

javascript - 有条件地调用 GulpJS 任务(手动)

node.js - TypeError : this. sendHandshake 不是一个函数