Как удалить дубликаты записи из определенной коллекции в базе данных в монго? - PullRequest
1 голос
/ 02 мая 2019

Схема - База данных: yelp_camp, Коллекция: палаточные лагеря, Количество записей в коллекции равно четырем

ВЫПУСК - В коллекции существуют повторяющиеся записи, требуется удалить все, кроме первой.

Снимок коллекции базы данных, {"_id": ObjectId ("5cc9729f48ec2b0add99866e"), "name": "CampAliBaba101234", "image": "https://photosforclass.com/download/flickr-2770447094"," __v ": 0} {" _id ":ObjectId ("5cc974b46e587f0b00855b0d"), "name": "CampAliBaba101234", "image": "https://photosforclass.com/download/flickr-2770447094"," __v ": 0} {" _id ": ObjectId (" 5cc9facd11f218081b57f8f0 """," image ":" https://photosforclass.com/download/flickr-2770447094", "__v": 0} {"_id": ObjectId ("5cca658c5ecabc0a7ff79e4e"), "name": "CampAliBaba101234", "image": "https://photosforclass.com/download/flickr-2770447094","__v": 0} Попытка с использованием приведенного ниже кода, но безрезультатно,

Попытка выполнения нижеприведенного запроса монго в оболочке, db.campgrounds.ensureIndex ({"name": 1}, {unique: "true", dropDups:" true "})

Ожидается - дубликаты записей должны быть удалены, и только одна уникальная запись должна быть исключенаist.

Actual - Возвращается следующая ошибка, {"ok": 0, "errmsg": "E11000 Коллекция ошибок дубликатов ключей: yelp_camp.campgrounds index: image_1 dup key: {: \" https://photosforclass.com/download/flickr-2770447094\"} "," code ": 11000," codeName ":" DuplicateKey "}

1 Ответ

0 голосов
/ 02 мая 2019

Просто попробуйте с этим

db.getCollection('Test').find({  
   "name":"CampAliBaba101234"
}).forEach((data)=>{  
   var i = 0; 
      db.getCollection('Test').find(   {  
      "name":"CampAliBaba101234"
   }   ).forEach((doc)=>   {  
      if (i>0)   db.getCollection('Test').remove(      {  
         _id:data._id
      }      ) 
        i++
   }   )
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...