【发布时间】:2022-01-04 15:59:29
【问题描述】:
使用Node/Express/Mongoose,有没有办法在url参数中传递$gte、$lte之类的查询?
我正在开发一个仪表板工具,它必须有大约 40 个不同的查询选项(一次最多可选择 6 个),可以任意组合,我正在尝试找到一种方法来传递这些选项URL 而不是控制器。查询选项太多,在控制器中使用像age: { $gt: 17, $lt: 66 } 这样的标准是不现实的。如果我可以传递?age={$gte: 18, $lte: 24} 之类的内容并返回该范围,那么我就可以正确返回数据。使用控制器的部分问题在于没有标准的对象结构。
提前谢谢你。
【问题讨论】:
-
使用 express req.query 属性。然后你可以像这样传递查询参数:
<host>/api/endpoint?gt=17&lt=66 -
我正在使用 req.query,但在上面的示例中,我需要能够获得年龄范围。您的示例没有获取年龄范围,而只是两个查询。我很感激你的回复。希望我已经澄清了一点。
-
只需在 2 个变量中创建范围
let age = {$gt: req.query.gt, $lt: req.query.lt}。我不明白你的问题。 -
感谢您的澄清,我想有 50 个查询选项涵盖大约 1,000 个字段,这让我很头疼。
标签: node.js express mongoose req.query