Node Express Mongoose:编写 API 以通过多个可选参数搜索数据
Posted
技术标签:
【中文标题】Node Express Mongoose:编写 API 以通过多个可选参数搜索数据【英文标题】:Node Express Mongoose : writing API to search data by multiple optional params 【发布时间】:2017-08-09 04:28:37 【问题描述】:我有一个搜索输入框,用户应该能够通过员工 ID 或名字或姓氏进行搜索。员工 id 也是一个字符串。我有一个名为 profile 的 mongo 模型,其中包含员工信息。
我正在使用节点 Express 和猫鼬。我想要一个接收 id 或 firstname 或 lastname 作为请求参数的路由器,如下所示。
this.router.get('/name/:name', this.getMidSearchResults);
private getMidSearchResults(req: Request, res: Response, next: NextFunction)
var nameRegex = "$regex": new RegExp('^' + req.params.name.toLowerCase(), 'i');
Profile.find( mid: nameRegex || firstName: nameRegex || lastName: nameRegex, function(err, data)
if (err) throw err;
res.send(data);
);
【问题讨论】:
【参考方案1】:代替:
Profile.find( mid: nameRegex ||
firstName: nameRegex ||
lastName: nameRegex , function (err, data)
// ...
);
使用:
Profile.find($or: [
mid: nameRegex ,
firstName: nameRegex ,
lastName: nameRegex
], function (err, data)
// ...
);
【讨论】:
以上是关于Node Express Mongoose:编写 API 以通过多个可选参数搜索数据的主要内容,如果未能解决你的问题,请参考以下文章
Node.js / Express / Mongoose - 如何发送 JSON 以及对象视图?
node.js + express.js:使用 mongodb/mongoose 处理会话
在 Node/Mongoose/Express 中保持 DB 数据属性私有