[英]Create query based on inputs from user
所以可以说我正在通过数据库进行搜索
router.post('/searchLoads', ensureAuthenticated, async (req, res) => {
var{ agentCode, loadNumber, pickupNumber, pickupDate } = req.body});
用户无需填写所有字段。 我将如何基于 if 语句构建查询? 我正在尝试类似的东西
result = 'await Load.find({';
if (agentCode !== undefined){
result += "agentCode: agentCode, ";
}
if(loadNumber !== undefined){
result += "loadNumber: loadNumber, ";
}
if(pickupNumber !== undefined){
result += "pickupNumber: pickupNumber, ";
}
if(pickupDate !== undefined){
result += "pickupDate: pickupDate, ";
}
result += "})";
但是,既然我已经创建了查询,我不确定如何运行代码。 有没有更简单的方法来做到这一点?
您可以创建一个对象,而不是创建一个字符串。
假设我们使用 ES6+,我们可以在初始化字段时使用agentCode
而不是agentCode: agentCode
。
var options = {
agentCode,
loadNumber,
pickupNumber,
pickupDate,
};
result = await Load.find(options);
!== undefined
检查不是必需的,因为undefined
字段将被删除。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.