значение по умолчанию для сбора ссылок в мангусте - PullRequest
0 голосов
/ 24 июня 2018

У меня есть профиль пользователя, у меня есть поле 'доход', и оно выглядит следующим образом в схеме

доход: {тип: Schema.Types.ObjectId, ref: 'Доход'}

Это как сделать значение по умолчанию для поля заработка при создании нового пользователя?Я не могу сделать это

earning: {
    type: Schema.Types.ObjectId,
    ref: 'Earning',
    default: 0
  }

Я получил ошибку преобразования Cast to ObjectId для значения "0" при пути "зарабатывание"

Ответы [ 2 ]

0 голосов
/ 24 июня 2018

Насколько я понимаю, earning указывает на то, сколько пользователь зарабатывает, поэтому он должен иметь тип Number, а не ObjectId

, поэтому попытайтесь изменить свою схему на

earning: {
type: Number,
ref: 'Earning',
default: 0

}

, поэтому вы можете использовать 0

Примечание: , если вам следует использовать ObjectId по какой-то причине, поэтому ответ «Haroon Khan» - этоправильный ответ.

0 голосов
/ 24 июня 2018

То, что вы делаете неправильно, это попытка привести число в поле идентификатора. Так как это ссылка на другое поле идентификатора объекта, вы не можете установить 0 для него. Что вам нужно сделать, это установить null, когда пользователь создается в БД, и инициализировать его нулевым значением заработка. Как:

earning: {
  type: Schema.Types.ObjectId,
  ref: 'Earning',
  default: null
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...