Как удалить дубликаты в mongoDB с mon goose (NodeJS) - PullRequest
0 голосов
/ 12 апреля 2020

У меня есть коллекция в MongoDB, где их около (~ 200 тыс. Записей). Моя примерная запись будет выглядеть так:

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

У меня много дубликатов записей в коллекции, имеющих такие же slug

Я хочу удалить дубликаты записей на основе slug Is Есть ли быстрый способ удалить все дубликаты с mon goose (Nodejs)? Спасибо!

1 Ответ

1 голос
/ 12 апреля 2020

Удалить повторяющиеся записи в коллекции, имеющие одинаковые 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}
   });
})

Перепрошивка ссылка

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...