在 express API 中获取字符串以传递给 mongodb 查找函数

Fetch string in express API to pass into mongodb find function

我正在使用 express API js 连接 mongoDB。我试图将参数传递给 mongodb 的查找函数,当我将它作为硬编码值传递时,它可以正确获取数据,但是当我传递动态字符串值时,它不接受。请在下面找到代码以获得更清晰的想法,

-----API.JS-----

router.get('/external_sources_details_filtered',(req,res) =>{
   connection((db) => {
   let parameterValue = String( 'frequency.'+ req.query.frequency);
        console.log(parameterValue);
        var query1 = {parameterValue :{$exists:true}};
        var query2 ={'frequency.Monthly':{$exists:true}};
        console.log(query1);
        console.log(query2);
        var projection = {_id:0,sourceID:1,SourceName:1, Outstanding:1};
         db.collection('external_sources').find(query2)
         .project(projection).toArray()
         .then((external_sources_details_filtered) => {
          response.data = external_sources_details_filtered;
         res.json(response);
    })
  })      
 }) 

console.log(query1) 的输出 = { parameterValue: { '$exists': true } }

console.log(query2) 的输出 = { 'frequency.Monthly': { '$exists': true } }

为什么即使在将 parameterValue 转换为字符串后,在 query1 中传递它时也没有获取 parameterValue?

解决方案:因为我使用 parameterValue 作为对象的键。如果你想使用变量,你应该尝试 {[parameterValue]: {$exists: true}} .这是 ES6 的一项功能,您可以在此处阅读更多相关信息 http://wtfruby.com/javascript/2017/01/04/js-dynamic-attr-names.html