javascript - 如何使用 mongoose(NodeJS)删除 mongoDB 中的重复项
问题描述
我在 MongoDB 中有一个集合,其中大约有(约 20 万条记录)。我的样本记录看起来像,
{
name:String,
slug:String,
metaDes:String,
content:String,
parentID:String,
thumbnail:String,
display:Boolean,
}
我在集合中有很多重复的记录具有相同的slug
我想根据slug
是否有任何快速的方法可以使用猫鼬(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}
});
})
参考链接
推荐阅读
- javascript - React-Native:如何在顶部栏上添加一个图标来制作 popToTop?
- flutter - 如何创建此页面?
- java - afterPropertiesSet 是否保证内部属性也被初始化?
- android - 从 Firebase 回收站视图中删除项目时出错
- php - 如何在 PHP 中使用 HTTP_REFERER
- r - 从 rnoaa 下载数据(API 密钥错误)
- python-3.x - 如何在情节中向交互式标签添加信息?
- sass - 带有字符串功能的Scss mixin
- android - 文本可组合尺寸资源不能用作 fontSize 参数
- web-applications - 将徽章添加到 Chrome 而不是安装的 PWA