Пн goose вернуть дубликат ключа для новых данных - PullRequest
0 голосов
/ 29 апреля 2020

Мои проблемы - я пишу скрипт для хранения JSON на сервере базы данных по запросу. Есть такие проблемы:

в первый раз, каждый JSON успешно отправляется после перезапуска сервера. после этого никакие данные JSON не будут отправлены и выдадут mon goose дубликат проблемы с идентификатором.

E11000 duplicate key error index: [database_name].[collection].$_id_ dup key: { : "2c73c49d-8ad2-49bf-b5a1-520aa595df17" }
  • ключ, сгенерированный схемами типа
new Schema({
  _id: { type: String, default: uuidv4() },
  ... // remainings
}
  • Почтовый запрос обратного звонка здесь
function (req, res) {
    models
     .create({'---': req.body.---, ..., ..., ..., ...})
     .then(result => res.json(result))
     .catch(err => {
       res.send(err.message);
     });
}

Ответы [ 2 ]

2 голосов
/ 29 апреля 2020
Параметр

default должен быть функцией

Если вы передадите uuidv4(), он передаст сгенерированное значение при создании схемы и будет использовать это значение для всех документов.

Схема должна быть определена следующим образом.

new Schema({
  _id: { type: String, default: uuidv4 },
  ... // remainings
}
1 голос
/ 29 апреля 2020

Вы можете следовать этому коду

async function (req, res) {
   const _doc=await models.create(req.body)
    res.send(_doc)
}
...