Gremlin :在 Cosmos DB Gremlin API 中组合 2 个或更多顶点,它们之间没有边
Gremlin : Combine 2 or more vertices without an edge between them in Cosmos DB Gremlin API
假设我有一个顶点Employee 和一个顶点Department。 Employee 有一个 属性 departmentId 但是这两个顶点之间没有边,我可以将 departmentName 和 employeeName 一起投射吗??
g.addV('employee').
property('id', 1).
property('name', 'A').
property('departmentId', 1)
g.addV('department').
property('id', 1).
property('name', 'HR')
我仍然认为这是一个糟糕的设计,这里的表现会很糟糕。
g.V().hasLabel('employee').as('e').
project('name', 'department name').
by('name').
by(V().hasLabel('department').
has('_id', select('e').
values('departmentId')).values('name'))
示例:https://gremlify.com/kudcz61i5j
也许这样会有更好的表现:
g.V().hasLabel('department', 'employee').
group().by(coalesce(
hasLabel('department').values('_id'),
hasLabel('employee').values('departmentId')
)).
by(fold().as('group').unfold().
hasLabel('employee').
project('name', 'department name').
by('name').
by(select('group').unfold().
hasLabel('department').values('name')).
fold())
假设我有一个顶点Employee 和一个顶点Department。 Employee 有一个 属性 departmentId 但是这两个顶点之间没有边,我可以将 departmentName 和 employeeName 一起投射吗??
g.addV('employee').
property('id', 1).
property('name', 'A').
property('departmentId', 1)
g.addV('department').
property('id', 1).
property('name', 'HR')
我仍然认为这是一个糟糕的设计,这里的表现会很糟糕。
g.V().hasLabel('employee').as('e').
project('name', 'department name').
by('name').
by(V().hasLabel('department').
has('_id', select('e').
values('departmentId')).values('name'))
示例:https://gremlify.com/kudcz61i5j
也许这样会有更好的表现:
g.V().hasLabel('department', 'employee').
group().by(coalesce(
hasLabel('department').values('_id'),
hasLabel('employee').values('departmentId')
)).
by(fold().as('group').unfold().
hasLabel('employee').
project('name', 'department name').
by('name').
by(select('group').unfold().
hasLabel('department').values('name')).
fold())