Я использую 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.Предыдущие ответы здесь не помогли мне.Я также пытался сбросить коллекцию, но у меня ничего не получалось.