在 express API 中获取字符串以传递给 mongodb 查找函数
Posted
技术标签:
【中文标题】在 express API 中获取字符串以传递给 mongodb 查找函数【英文标题】:Fetch string in express API to pass into mongodb find function 【发布时间】:2018-12-16 04:54:01 【问题描述】:我正在使用 express API js 来连接 mongoDB。我正在尝试将参数传递给 mongodb 的 find 函数,当我将其作为硬编码值传递时,它会正确获取数据,但是当我传递动态字符串值时,它不接受。请在下面找到代码以获得更清晰的想法,
-----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 特性,你可以阅读更多关于它的信息here
成功了...非常感谢您的支持@user184994
【参考方案1】:
解决方案:因为我使用 parameterValue 作为对象的键。如果你想使用变量,你应该尝试 [parameterValue]: $exists: true .这是一个 ES6 特性,你可以在这里阅读更多关于它的信息http://wtfruby.com/javascript/2017/01/04/js-dynamic-attr-names.html
【讨论】:
以上是关于在 express API 中获取字符串以传递给 mongodb 查找函数的主要内容,如果未能解决你的问题,请参考以下文章
无法传递字符串以获取 OpenWeatherMap API JSON 中“描述”的值
node-express 如何在 URL 查询字符串中传递 DATE 参数以及如何解析它
如何使用 javascript fetch api 和 express multer 上传图像