如何使用querymen在mongoDB中搜索单个字段?

时间:2019-09-13 08:34:56

标签: node.js mongodb express mongoose

嗨,我目前正在使用此生成器来开发REST API。

https://github.com/diegohaz/rest?fbclid=IwAR3FwvhJuKpAtCrywOIRkpts8ZvZ_36Gk9b8ksSv2_MEgFtJnl4G7QZvGNI

但是我对MEAN堆栈环境(尤其是mongoDB)有些陌生。

我只想问一下如何使用此项目的此自动生成文档中描述的搜索查询参数。

https://www.screencast.com/t/4wR7qyxj5ZP

我正在尝试通过list_id搜索所有菜单

对于MYSQL类似这样。

Select * from menu where list_id = '123';

因此,此生成的REST API应用程序正在使用查询员进行搜索查询。我已经尝试过www.domain.com/menus?q={list_id:"1"}、www.domain.com/menus?q={"list_id":"1“},但是这些都不起作用,它只会显示空结果

这是我的代码的路由器部分。


/**
 * @api {get} /menus Retrieve menus
 * @apiName RetrieveMenus
 * @apiGroup Menu
 * @apiUse listParams
 * @apiSuccess {Object[]} menus List of menus.
 * @apiError {Object} 400 Some parameters may contain invalid values.
 */

router.get('/',
  query({ limit: { max: 1000 } }),
  index)

1 个答案:

答案 0 :(得分:0)

我正在回答我的问题,以防万一有人遇到相同的问题。所以我发现我只需要在查询参数中包含一个自定义模式,而不是

router.get('/',
query({ limit: { max: 1000 } }),
index)

现在是这样。

query({
  list_id: {
    type: String,
    paths: ['list_id']
  },
  limit: { max: 1000 }
}),index)

如果需要,还可以将String更改为Regexp。