Я передаю параметры запроса, и может быть любая комбинация sort
, limit
или skip
для запроса Mongoose.
Я подумал о том, чтобы создать несколько запросов Mongoose на основе того, какие параметры были переданы. Таким образом, если будет передано только sort
, тогда результирующий запрос будет иметь Document.find({}).sort({})
, а в случае передачи только limit
запрос будет Document.find({}).limit({})
Должен ли я написать что-то вроде этого -
router.get('/', (req, res) => {
if(req.query.sortByPrice) {
Property.find({})
.sort({ price: req.query.sortByPrice === 'asc' ? 1 : -1 })
.populate('user_id', 'name')
.exec((err, properties) => {
if (err)
return res
.status(404)
.json({ error: "Can't get user details!" });
res.status(200).json(properties);
});
}
if(req.query.limit) {
Property.find({})
.limit(req.query.limit)
.populate('user_id', 'name')
.exec((err, properties) => {
if (err)
return res
.status(404)
.json({ error: "Can't get user details!" });
res.status(200).json(properties);
});
}
});