E11000 дубликат ошибки ключа с пользовательским _id - PullRequest
0 голосов
/ 12 октября 2018

Я использую mongoose в приложении Hapi.js и мне нужно использовать пользовательский _id.Я использую операцию replaceOne с upsert: true, но при сохранении в базу данных случайно полученная ошибка не имеет значения, если какая-либо запись с таким же _id уже есть в базе данных:

{"level":50,"time":1539345307257,"msg":"Unhandled Rejection at: {} reason: {\"driver\":true,\"name\":\"MongoError\",\"index\":0,\"code\":11000,\"errmsg\":\"E11000 duplicate key error collection: inside.articles index: _id_ dup key: { : \\\"66aba6dd-f384-4325-aebd-8a3e9a672051\\\" }\"}","pid":78087,"hostname":"iblmac2.domain.local","v":1}

Ошибка невлияет на вставку в базу данных (запись выполняется каждый раз), но появляется сообщение об ошибке.Моя схема выглядит так:

const ArticleSchema = new Schema({
  _id: String,
  title: String,
  kicker: String,
  author: String
  })

Вот метод обслуживания:

const saveEntity = async (articleModel) => {
  await entity.replaceOne(
    {_id: articleModel._id},
    articleModel,
    {upsert: true},
    (err, output) => {
      ...
    })
}

Я пытался также использовать разные методы, такие как updateOne, но у меня тоже была та же ошибка.Я почти уверен, что в базе данных нет ни одной записи с таким же _id.Индекс установлен только на _id.Предыдущие ответы здесь не помогли мне.Я также пытался сбросить коллекцию, но у меня ничего не получалось.

...