Я делаю запрос Mongoose/MongoDB .aggregate
с $limit
в конвейере. Когда я использую номер, например 2
, он отлично работает. Если я установил переменную как testNum = 2
, а затем сделаю {$limit: varNum}
, она отлично работает. Но если я отправлю запрос REST и попробую сделать $limit: req.body.show
, он говорит, что значение не является числом.«ограничение должно быть указано как число» при использовании req.query.property
Я могу видеть, что это число до console.log
. Другие запросы в конвейере не жалуются, что им не дают числа. Вот код:
var show = req.query.show, // the number of items to show per page
page = req.query.page, // the current page being asked for
stream = req.params.stream, // the type of content to get
skip = (page > 0 ? ((page - 1) * show) : 0), // amount to skip
testNum = 3
console.log(show + " " + skip + " " + page)
Content.aggregate([
{ $unwind: '$users' },
{ $group: {
_id: '$_id',
title: { $first: '$title' },
description: { $first: '$description' },
images: { $first: '$images' },
url: { $first: '$url' },
saveCount: { $sum: 1 } }
},
{ $sort: { saveCount: -1 } },
{ $skip: skip },
{ $limit: show }
])
.exec()
Запрос здесь ?show=2&page=1
. Выход консоли - 2 0 1
. Это работает правильно.
Полная ошибка здесь:
{ [MongoError: exception: the limit must be specified as a number]
name: 'MongoError',
errmsg: 'exception: the limit must be specified as a number',
code: 15957,
ok: 0 }