在使用Logstash将其上传到弹性文档之前,我正在尝试从我的MongoDB文档中重命名一些深度字段。
例如:我的MongoDB文档如下所示:
name: "firstDoc",
infoArray:
[
{infoName: "i", elements:{e1: "e1", e2: "e2"}},
{infoName: "j", elements:{e3: "e3", e4: "e4"}}
]我能够像这样访问logstash中的"name“字段:
mutate { add_field => {"[otherDoc][name]" => "%{[document][name]}"} }但是我无法访问infoArray中的字段,我尝试了重命名:
mutate { rename => {"[document][infoArray][elements][e1]" => "[otherDoc][e1]"} }我也尝试把它作为一个新的领域:
mutate { add_field => {"[otherDoc][e1]" => "%{[document][infoArray][elements][e1]}"} }但还是不起作用。
有什么办法可以进入深井吗?
发布于 2020-02-27 13:02:38
我找到了以下解决办法:
mutate { rename => {"[document][infoArray][0][elements][e1]" => "[otherDoc][e1]"} }或
mutate { add_field => {"[otherDoc][e1]" => "%{[document][infoArray][0][elements][e1]}"} }infoArray的索引应该在Logstash.中指定。
https://stackoverflow.com/questions/60376803
复制相似问题