首页 > 解决方案 > mongodb中的搜索参数

问题描述

用户.js

exports.getProducts = async (name, brand) => {
 let queryFilters = { name , brand }   // ====>>> if brand or name is = '' then it not search
 queryFilters = JSON.parse(JSON.stringify(queryFilters));
 let userRecords = await model.find( queryFilters).exec();
 return userRecords
};

name 和 brand 是查询参数,如果 name 或 brand 为空白或未定义,我希望它不会传入查询参数,例如 localhost:3001/product?name=dj&brand= 在这种情况下,它只搜索 name=dj 而不是 brand 搜索对于 name=dj 和 brand='' 如果给出了品牌并且名称未定义或为空,则相同。我也想在 SQL 中,例如,如果名称是 dj,如果我搜索 d,那么它也会搜索 dj。任何帮助将不胜感激

标签: javascriptnode.jsmongodbmongoose

解决方案


您可以执行以下操作:

let queryFilters = {};

if(name != ''){
    queryFilters.name = name
};

if(brand != ''){
    queryFilters.brand = brand
};

如果名称或品牌具有价值,它将分配,否则将不包含此字段。


推荐阅读