Mon*_*ize 2 javascript node.js elasticsearch
这是相关代码:
var field = String(querystring.parse(postData).field).toLowerCase();
var qryObj = {
"fields" : view_options,
"query":{
"term" : { field : value}
}
};
Run Code Online (Sandbox Code Playgroud)
变量'field'将是一个字符串,如"number","date"等.我想要做的只是在变量'field'中定义的字段中搜索索引.如果我对字符串进行硬编码,则此代码有效,如下所示:
"term" : { "number" : value}
Run Code Online (Sandbox Code Playgroud)
那么有人可以使用预定义的变量而不是字符串来搜索特定字段吗?
您不能将变量用作对象文字中的键.在每个:标识符的左侧,标识符本身成为键的名称,而不是作为其值的变量进行评估.
console.log({ key: "value" }); // { key: 'value' }
console.log({ "key": "value" }); // { key: 'value' }
Run Code Online (Sandbox Code Playgroud)
您必须Object使用括号成员运算符构建第一个,然后将其应用于查询对象:
var term = {};
term[field] = value;
var qryObj = {
fields: view_options,
query: {
term: term
}
};
Run Code Online (Sandbox Code Playgroud)
更新:
使用ECMAScript 6,Object literals现在支持使用括号表示法为密钥计算密钥:
var qryObj = {
fields: view_options,
query: {
term: {
[field]: value
}
}
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1066 次 |
| 最近记录: |