use*_*352 2 javascript arrays dictionary object elasticsearch
我从Javascript ElasticSearch查询得到以下响应,我需要将它映射到下面的结构.有没有比我目前正在做的更有效的方法呢?
谢谢
我需要映射到的结构:(大约700个)
[{
"coordinates": ["48", "37"],
"name": "something",
"population": "501"
},
Run Code Online (Sandbox Code Playgroud)
返回我的数据的当前结构:
[Object, Object, Object, Object, Object, Object, Object, Object, Object, Object]
0: Object
_id: "4"
_index: "locationIndex"
_score: 1
_source: Object
coordinates: Array[2]
0: -77.080597
1: 38.892899
length: 2
__proto__: Array[0]
name: "someName"
population: 57205
1: Object
...
Run Code Online (Sandbox Code Playgroud)
我正在尝试但失败了:
var results= [{
"key": 'coordinates',
resp.coordiantes[0],
resp.coordinates[1],
"key": 'name',
resp.name
})
}];
Run Code Online (Sandbox Code Playgroud)
假设您的数据存储在myData变量中,您可以使用该Array.prototype.map方法来操作它并实现您想要的效果.这是一个解决方案:
result = myData.map(function(obj) {
return {
coordinates: obj._source.coordinates,
name: obj.name,
population: obj.population
}
});
Run Code Online (Sandbox Code Playgroud)
这很简单!结果将是这样的:
[
{
"coordinates": [-77.080597, 38.892899],
"name": "some name",
"population": 52701
},
{
"coordinates": [-54.930299, 30.992833],
"name": "some name 2",
"population": 84229
},
{
"coordinates": [-82.001438, -5.38131],
"name": "some name 3",
"population": 5991
} //, ...
]
Run Code Online (Sandbox Code Playgroud)