Node js выборка по полю (number)

Станислав
На сайте с 27.12.2009
Offline
258
580

Что то не пойму почему не выбирает запись по полю с типом (number), точнее понимаю по чему, но не пойму как решить.

В базе данных mongodb есть коллекция TABLE

Состоит она из трех полей

id | cid | name

Схема в mongoose

var schema = new Schema({
cid: {
type: Number,
max: 11,
unique: true,
required: true
},
name: {
type: String,
required: true
}
});

Вобщем по передаю пост запрос в модель

var cid = req.body.cid; // cid  = 3
// Так же хотел передать в запрос req.body который равен {cid:'3'}
// не получилось, ошибку выдает, пробовал так Catalog.findOne(cid, func.....

Catalog.findOne({cid: cid}, function(err, catalog) {
if(err) return next(err);

if( ! catalog) {
next(new HttpError(404));
return false;
}

console.log(catalog);
});

Собственно не пойму, поле Number, в запросе переданный пост так же число {cid: cid}

cid: 3

В итоге не может найти запись

Прямиком в mogodb запрос видать

db.catalogs.findOne({cid: 3})

так же возвращает пустой результат, находит только если указать что переданная переменная является строкой

db.catalogs.findOne({cid: '3'})

Подскажите как в запросе правильно сформировать условие выборки в данном случае?

ПС. если в схеме указать поле строкой, то все работает, но в нем храниться некое id (только числовое) и хотелось бы его оставить числовым.

Мы там, где рады нас видеть.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий