简体   繁体   English

如何将数组与 req.query 一起使用?

[英]How can I use an array with req.query?

My problem is how can I bring my data structure into the query?我的问题是如何将我的数据结构带入查询? I want to be able to search everything via one query.我希望能够通过一个查询搜索所有内容。 How can I implement this?我该如何实施?

I tried to enter the query so =>?basicData.tasks.title=Fleetmanagement.我尝试输入查询所以 =>?basicData.tasks.title=Fleetmanagement。 With it I can find all the data that fleet management has in it.有了它,我可以找到车队管理中的所有数据。 But now I want to search with two titles.但现在我想用两个标题进行搜索。

Example:例子:

?basicData.tasks.title=Fleetmanagement&basicData.tasks.title=OCPP Backend

But it doesn't work.但它不起作用。 How can i implement that right?我怎样才能做到这一点?

This is my data structure:这是我的数据结构:

  "basicData": {
      "tasks":[
         {"title": "Fleetmanagement"},
         {"title": "OCPP Backend"}
        ]
    }

My Code:我的代码:

export const allCompanyData = (req: Request, res: Response) => {
  if (req.query) {
    Company.find(req.query).then(docs => {
      logger.info(`Query works ${req.query}`);
      res.json({
        query: req.query
      })
      res.status(200).json(docs);
    }).catch(err => {
      logger.error(`Error ${err}`);
      res.status(400).json(`Error ${err}`)
    })
  } else {
    Company.find()
      .then((items: any) => {
        logger.info("Successful finding");
        res.status(200).json(items);
      })
      .catch((err: any) => {
        logger.error(`Error ${err}`);
        res.status(400).json(`Error ${err}`);
      });
  }
};

You append [] to the param name on the client side to indicate that you are providing an array:您将 append []到客户端的参数名称以表明您正在提供一个数组:

?basicData.tasks.title[]=Fleetmanagement&basicData.tasks.title[]=OCPP%20Backend

Then req.query will be:那么req.query将是:

{ 'basicData.tasks.title': ['Fleetmanagement', 'OCPP Backend'] }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM