Powerquery迭代步骤列表

时间:2016-05-16 10:47:37

标签: excel elasticsearch powerquery

我正在使用excel powerquery从elasticsearch中提取数据。 它对一个结果很好,但我希望得到很多。从最初的ES查询中我得到一个json对象列表,我可以很容易地将其转换为我想要的表。 问题是查询编辑器只允许我选择一个结果,而不是从列表中解析所有内容。

查询是:

let

    Content = "{""query"": {""match_all"": {}}}",
    Source = Json.Document(Web.Contents("http://es_host:9200/lcm_db/_search"))[hits][hits],
    Source1 = Source{1},
    _source = Source1[_source],
    #"Converted to Table" = Record.ToTable(_source),
    #"Transposed Table" = Table.Transpose(#"Converted to Table")
in
    #"Transposed Table"

Json.Document(Web.Contents("http://es_host:9200/lcm_db/_search"))[hits][hits]

给我一​​份清单,我必须为此完成4个步骤:

Source1 = Source{1},
_source = Source1[_source],
#"Converted to Table" = Record.ToTable(_source),
#"Transposed Table" = Table.Transpose(#"Converted to Table")

我如何使powerquery为所有列表结果执行这四个步骤?

谢谢, 艾萨克

1 个答案:

答案 0 :(得分:2)

您可以使用List.Transform,并在let语句中包含这4个步骤。它看起来像是:

= List.Transform(Json.Document(Web.Contents("http://es_host:9200/lcm_db/_search"))[hits][hits], (value) => each
    let
        _source = value[_source],
        #"Converted to Table" = Record.ToTable(_source),
        #"Transposed Table" = Table.Transpose(#"Converted to Table")
    in
        #"Transposed Table")