[英]Dealing with Objects from ElasticSearch - Do I need to reconstruct it?
因此,我正在使用一个名为Reactive的库,该库与Elastic Search配合使用以显示结果和设置查询。 我正在使用ReactiveComponent创建我自己的自定义下拉列表,当我使用带有自定义标签的范围时。.意思是,设置了“ Keyed:true”,(( 参考,看看Keyed Response和Response对象 )我不再一个数组,而不是我得到一个对象,这很难显示我想要的项目。
所以我得到的响应如下:
{
2000 - 2005: { from: 2000, to: 2005, doc_count: 32 }
2006 - 2010: { from: 2006, to: 2010, doc_count: 77 }
2011 - 2015: { from: 2011, to: 2015, doc_count: 94 }
2016 - 2018: { from: 2016, to: 2018, doc_count: 28 }
}
但是为了映射并显示必要的值,我希望它看起来更像
[{ key: "2016-2018", from: 2016, to: 2018, doc_count: 28} ] (etc)...
关于我应该做什么的建议? 重建对象还是朝另一个方向前进?
如果您只是不指定keyed: true
,那么基于您提供的ElasticSearch链接将不会得到所需的结果keyed: true
?
好吧,如果没有,那么使用Object.entries
:
Object.entries(response).map(([key, value]) => {
console.log(key) // "2016-2018"
console.log(value) // { from: 2016, to: 2018, doc_count: 28 }
})
这为我工作:
const reconstructedResults = [];
const results = aggregations[searchType].buckets;
Object.keys(results).map(datum => {
const datapoint = { key: datum, ...results[datum] };
results[datum] = datapoint;
return reconstructedResults.push(results[datum]);
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.