问题描述
感谢任何帮助或建议。
如果 topicA.owner 和 topicZ.owner 都存在输出 owner.name 应映射到 topicZ.owner>
-
如果 topicA.owner 仅输出 owner.name 应该映射到 topicA.owner
-
如果 topicZ.owner 仅输出 owner.name 应该映射到 topicZ.owner
输入:
CREATE INDEX performance_idx ON daily_factors (factor_date);
震动:
{
"topicA": {
"owner": "topic_a_owner"
},"topicZ": {
"owner": "topic_z_owner"
}
}
预期输出:
[
{
"spec": {
"*": {
"ta": "@(2,topicA.owner)","za": "@(2,topicZ.owner)"
}
},"operation": "modify-default-beta"
},{
"operation": "shift","spec": {
"topicA": {
"ta": "owner.name"
},"topicZ": {
"za": "owner.name"
}
}
}
]
解决方法
您提到的3个条件可以简化为以下2个条件。
- 如果 topicZ.owner 出现,(不管 topicA.owner 是否出现),那么输出 owner.name 应该被映射topicZ.owner(这将合并您的第一个和第三个条件)
- 如果 topicA.owner 仅呈现,则输出 owner.name 应映射到 topicA.owner
所以在此基础上,可以进行以下操作。
- 使用
modify-default-beta
操作将topicA.owner
的值复制到topicZ.owner
字段当topicZ.owner
不存在时。 - 使用
shift
操作将topicZ.owner
的值映射到输出中的owner.name
字段。
[
{
"spec": {
"topicZ": {
"owner": "@(2,topicA.owner)"
}
},"operation": "modify-default-beta"
},{
"operation": "shift","spec": {
"topicZ": {
"owner": "owner.name"
}
}
}
]