bro-dev
@bro-dev

Почему модель с полем Number, принимает и сохраняет туда строку?

Вот такая модель, пишем туда и в ид суем строку и базе потом записана именно строка
spoiler
new Schema({
    id: {
        type: Number,
        unique: true,
    }
});

дальше пытаюсь получить этот документ и не в какакую
spoiler
User.findOne({ id: 123}) 
User.findOne({ id: "123"})

оба этих запроса выдадут null, при этом если изначально записывать как цифру то норм ищет в обеих вариантах.
Как сделать строго чтобы только число писалось? , я думал что type: Number, достаточно, оказывается нет.
При этом если такие запросы делать через просто шел mongo то все норм работает, то есть User.findOne({ id: "123"}) находит а User.findOne({ id: 123}) нет, что общем то верно.
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 2
Tmch
@Tmch
Программист всего)
а не так User.findOne({ where: {id: 123}) ?
Ответ написан
@dmitrygavrish
Можете попробовать добавить валидацию mongoosejs.com/docs/validation.html:
new Schema({
    id: {
        type: Number,
        unique: true,
        validate: {
          validator: value => typeof value === 'number',
          message: 'Invalid id type'
        },
    }
});
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы
OneTwoTrip! Москва
от 120 000 до 200 000 руб.
BP Mobile Москва
До 250 000 руб.
1Win Санкт-Петербург
от 80 000 до 200 000 руб.
14 авг. 2018, в 22:43
350 руб./за проект
14 авг. 2018, в 19:03
10000 руб./за проект
14 авг. 2018, в 18:10
1000 руб./в час