Node.js Can';t将变量用作mongoose.find()的键和值

Node.js Can';t将变量用作mongoose.find()的键和值,node.js,mongoose,Node.js,Mongoose,我正在使用mongoose 5.11.4并尝试查找文档。官方文件上说 MyModel.find({ name: /john/i }) 我想知道如何使用变量来表示“name”和“john”,并完成确切的操作。这是我正在开发的API。过滤器(名称)和值(john)将由前端用户决定。我们应该使用该值搜索给定字段。有什么建议吗 let filter = req.params.filter let value = req.params.value MyModel.find({ filter : /va

我正在使用mongoose 5.11.4并尝试查找文档。官方文件上说

MyModel.find({ name: /john/i })
我想知道如何使用变量来表示“name”和“john”,并完成确切的操作。这是我正在开发的API。过滤器(名称)和值(john)将由前端用户决定。我们应该使用该值搜索给定字段。有什么建议吗

let filter = req.params.filter
let value = req.params.value

MyModel.find({ filter : /value/i }) 

不起作用

您可以使用RegExp对象将值转换为正则表达式

let regex = new RegExp(`${value}`,'options');
现在您可以在mongoose查询中使用它

model.find({name:regex});
这起作用了:)

let filter=req.params.filter let value=req.params.value

常量filterParam={}

filterParam[filter]={$regex:
*${value}.*
}

const suppliers=等待供应商查找(filterParam)