如何在gremlin中创建不匹配属性值的顶点?


数据模型如下:节点:customer_entity
名称标签 987654145954682174

您可以使用:

创建示例图
g = TinkerGraph.open().traversal()
g.addV('customer_entity').property('telephone', '969874293').
addV('customer_entity').property('telephone', '987654145').
addV('customer_entity').property('telephone', '954682174')
g.addV('membership_card').property('Card_No_', '969874293').
addV('membership_card').property('Card_No_', '190019688').
addV('membership_card').property('Card_No_', '954682174')

您可以添加phone_CDP顶点:

g.V().hasLabel('customer_entity', 'membership_card').
coalesce(values('telephone'),values('Card_No_')).as('phid').dedup().
addV('phone_CDP').property('phoneId', select('phid')).elementMap()

==>[id: 12,label:phone_CDP,phoneId:969874293]
==>[id:14,label:phone_CDP,phoneId:987654145]
==>[id:16,label:phone_CDP,phoneId:954682174]
==>[id:18,label:phone_CDP,phoneId:190019688]

你可以添加边缘:

g.V().hasLabel('customer_entity', 'membership_card').as('vfrom').
coalesce(values('telephone'),values('Card_No_')).as('phid').
V().has('phoneId').as('vto').values('phoneId').where(eq('phid')).
select('vfrom').addE('alias').to('vto')

= =在e [20] [0-alias→12]
= =在e [21] [14] 2-alias→
= =在e [22] [4-alias→16]
= =在e [23] [12] 6-alias→
= =在e [24] [18] 8-alias→
= =在e [25] [10-alias→16]

最新更新



  • All rights reserved © 2023 www.xiaobeizi.cn

  • 首页
~
Tien customer_entity
customer_entity