2017-04-21 79 views
0

我想知道如果我可以合并2个或更多的行在pentaho?合并行在pentaho PDI水壶

例如: 我有2行

case:'001', 
owner:'Barack' 
date:'2017-04-10' 

case:'001', 
owner:'Trump' 
date:'2017-02-10' 

然后,我想有一个MongoDB的输出:

case:'001' 
ownerHistory:[ 
{ 
owner:'Barack' 
date:'2017-04-10' 
}, 
{ 
owner:'Trump' 
date:'2017-02-10' 
} 
] 
+1

你的样品输入具有第二行002的情况下,是一个错误或者是有选择的行合并另一种方式? – Cyrus

+0

感谢赛勒斯,这是我的错误。它应该是案件001 ...你有这个解决方案吗? – hnandarusdy

回答

0

MongoDB的输出步骤支持影响在各个字段修改更新文档和$ push操作将项目添加到列表/数组。使用这些,你不需要合并任何行,你可以将它们全部发送到MongoDB Output步骤。

在修改器更新处于活动状态时,如果大小写尚未存在,则每个下一行都将被插入,或者如果存在,则将所有者添加到数组中。

不幸的是,如果您使用相同的传入数据第二次运行此转换,它将添加更多的所有者副本。我还没有找到解决这个问题的方法,所以我希望你的用例中没有这个方法。

也许如果你分割数据并插入/替换使用每个案例的第一条记录,那么对第二条和以后的记录进行$ push更新可以管理它。

MongoDB configuration screenshot

+0

嗨,谢谢你的回复。不幸的是,我无法得到这个工作。 我不知道我应该为数据类型放置什么。选项仅为字符串,数字,日期,布尔值,整数,BigNUmber,二进制,时间戳,Internet地址。 也许,如果你可以共享一个.ktr文件,这将是非常有用的。 (当你有明显的时间) 是的,当然我会有超过1例 – hnandarusdy

+0

我重写了使用MongoDB输出的内置功能的答案,而不是从头开始构建文档布局。 – Cyrus