我想在查询集合时在Mondgodb中动态传递字段名称。例如
emp.ply = function(res,res) {
Employee.find({area: 'Plymouth'}).exec(function(err,PLY) {
res.render("../index", {resultset: PLY})
在这里,我正在查询字段名称区域,这是硬代码。而不是我想动态传递fieldname。我们如何在nodeJS中实现它
答案 0 :(得分:1)
因此,从概念上讲,您只需要在将查询对象发送到.find()
函数之前先构建查询对象。也许是这样的:
const query = {}
const fieldname = 'area'
const fieldvalue = 'Plymouth'
query[fieldname] = fieldvalue
Employee.find(query).exec((err, ply) => {
// do whatever
});
根据您的工作,您可以从概念上从req.body或req.query中提取字段名和fielvalue。
答案 1 :(得分:1)
如果您的代码支持ES6或(除IE以外的任何最新浏览器),我们可以这样做:
emp.ply = function(res,res) {
let searchField = 'area'; // this can be anything dynamically
Employee.find({[searchField]: 'Plymouth'}).exec(function(err,PLY) {
res.render("../index", {resultset: PLY})
})
}
您可以参考有关Computed property names的MDN文档