javascript - 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。任何帮助将不胜感激
解决方案
您可以执行以下操作:
let queryFilters = {};
if(name != ''){
queryFilters.name = name
};
if(brand != ''){
queryFilters.brand = brand
};
如果名称或品牌具有价值,它将分配,否则将不包含此字段。
推荐阅读
- c# - 如何检查是否正在使用 BindableProperty?
- python - 不能将 color_mode = 'grayscale' 与灰度 JPEG 一起使用
- ios - Flutter 无法捕获已终止 ios 应用程序的通知
- python - 为什么 ThreadPoolExecutor 忽略异常?
- json - 当我已经将该字段设置为可为空时。它没有优雅地解析信息。可能是什么问题?
- javascript - 如何将数组与使用本地存储的不同数组连接起来
- sql - Oracle SQL:基于行的重启顺序
- git - GitLab 中未显示的口音
- node.js - ReplicaSetNoPrimary MongooseServerSelectionError: getaddrinfo EAI_AGAIN mongodb-primary
- reactjs - 我在基于类的 reactjs 代码中有下面的照片上传器代码,我希望它在基于功能的工作代码中