【发布时间】:2019-11-14 07:28:19
【问题描述】:
我正在传递查询参数,对于 Mongoose 查询,sort、limit 或 skip 可以是任意组合。
我想到的是根据传递的参数创建多个猫鼬查询。因此,如果只传递了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);
});
}
});
【问题讨论】:
标签: mongodb sorting mongoose filtering