Запретить заполнение пользователем поля _id в MongoDB - PullRequest
0 голосов
/ 01 февраля 2020

У меня есть простая схема Mon goose, подобная этой:

  const schema = {
     question: {
        type: String,
        required: true
     },
     answer: {
        type: String,
        required: true
     }
  }

Если я сделаю новую запись, подобную этой:

  const record =
  {
     question: 'what is your name?'
     answer: 'bob'
  }
  Quiz.create(record);

Mon goose создаст запись с автоматически сгенерированным полем _id типа ObjectID.

Если я сделаю новую запись, подобную этой:

  const record =
  {
     _id: '5e35517cc894c90327a34bae',
     question: 'what is your name?'
     answer: 'bob'
  }
  Quiz.create(record);

Пн goose снова создаст запись, но будет использовать _id, который я предоставил (если это действительный формат), который должен быть создан автоматически.

Есть ли какой-либо встроенный способ предотвратить это или пометить поле как «незаполняемое», как я увидеть в других рамках, как laravel? Я могу создать промежуточное программное обеспечение, чтобы проверить, предоставляется ли _id, но должен быть способ сделать это автоматически, так как не имеет смысла принимать автоматически сгенерированное поле для начала.

...