Node Express Mongoose:编写API以通过多个可选参数search数据

我有一个searchinput框,用户应该可以通过员工ID或名字或姓氏进行search。 员工ID也是一个string。 我有称为configuration文件,具有员工信息的mongo模型。

我正在使用节点Express和mongoose。 我想有一个路由器接收id或名字或姓氏作为请求参数如下。

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); }); } 

代替:

 Profile.find({ mid: nameRegex } || { firstName: nameRegex } || { lastName: nameRegex }, function (err, data) { // ... }); 

使用:

 Profile.find({$or: [ { mid: nameRegex }, { firstName: nameRegex }, { lastName: nameRegex } ]}, function (err, data) { // ... });