Mongodb 在pentaho PDI釜中合并行

Mongodb 在pentaho PDI釜中合并行,mongodb,pentaho,kettle,pdi,Mongodb,Pentaho,Kettle,Pdi,我想知道我是否可以合并pentaho中的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' } ] M

我想知道我是否可以合并pentaho中的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'
}
]

MongoDB输出步骤支持影响文档中单个字段的修改器更新,以及向列表/数组添加项的$push操作。使用这些,您不需要合并任何行,只需将它们全部发送到MongoDB输出步骤

当修改器更新处于活动状态时,如果案例尚不存在,则将插入下一行;如果案例存在,则将所有者添加到数组中

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

如果您拆分数据并使用每个案例的第一条记录插入/替换,然后对第二条和以后的记录执行$push更新,您可以管理它


您的示例输入第二行有案例002,这是一个错误还是您选择行合并的另一种方式?谢谢Cyrus,这是我的错误。应该是001号案件。。。你有解决这个问题的办法吗?嗨,谢谢你的回复。一、 不幸的是,我们无法让它正常工作。我想知道我应该为数据类型加什么。选项只有字符串、数字、日期、布尔值、整数、BigNUmber、二进制、时间戳、Internet地址。也许,如果您可以共享一个.ktr文件,它会非常有用。(当你有时间的时候)是的,当然我会有不止一个案例。我重写了答案以使用MongoDB输出的内置功能,而不是从头开始构建文档布局。