javascript 当我在mongo db中使用字符串和数字进行多个get请求时,我如何忽略空数组

huwehgph  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(110)

这是我现在正在做的工作:

export const ProductsByFilter = async (req, res) => {

  const {a, b, c} = req.query

  let query = {}

  if (a) {
    query.a = a;
  }
  if (b) {
    query.b = b;
  }
  if (c) {
    query.c = c;
  }

  const products = await Product.find(query);

  res.status(200).json(products);
}

问题是a是一个字符串,b是一个数字,所以当我做一个多个请求时,即使其中一个是空的,它们也可以正常工作,但是c是一个数组,它不工作,我怎么能让c查询也工作,使用相同的逻辑并保持多个查询请求,可以忽略空或空参数。

ergxz8rk

ergxz8rk1#

我使用了回应我的用户的代码,但为了使其功能完整,我不得不添加$in,正如我在下面的代码中所展示的,然后查询也与数组一起工作:

export const ProductsByFilter = async (req, res) => {

    const {a, b, c} = req.query

    let query = {}

    if (a) {
       query.a = a;
    }
    if (b) {
       query.b = b;
    }
    if (c?.length) {
       query.c ={$in:c};
    }

    const products = await Product.find(query);

    res.status(200).json(products);
                                                          }

相关问题