【发布时间】:2021-02-28 10:22:02
【问题描述】:
我有一个数据源,我读取并尝试将其加载到我的 CosmosDB 图表中。我获取的每一行都包含有关多个实体(人、软件)的信息。我在这里要做的是:
- 验证此类顶点是否已存在并为缺失的条目(人员、软件)生成单独的实体
- 验证边缘是否已经存在(此人与此软件之间)
- 在它们之间创建一条边
我一直在参考以下主题: CosmosDB Graph : “upsert” query pattern、Add edge if not exist using gremlin 试图以某种方式将它们结合起来,但没有取得多大成功。
我尝试了以下方法:
g.V().has('person','name','vadas').
fold().coalesce(unfold(), addV('person').property('name','vadas')).as('v').
V().has('software', 'name','ripple').
fold().coalesce(unfold(), addV('software').property('name','ripple')).
coalesce(__.inE('created').where(outV().as('v')), addE('created').from('v'))
但它只创建顶点,它们之间没有边。
我也想知道是否有更常见的方法来处理:
1. Upsert entity A and keep a reference to it
2. Upsert entity B and keep a reference to it
3. Upsert entity C and keep a reference to it
....
1. Upsert edge between A and B
2. Upsert edge between A and C
【问题讨论】: