如何最好地基于 2 个顶点共有的 属性 创建边?

How best to create edges based on a property common to 2 vertices?

我有 2 个顶点 classes - EMPLOYEE 和 BRANCH,它们都填充了数据,我想要一个边 class InBranch 作为它们的关系。

所以 Employee -InBranch-> Branch。

Class 具有属性的员工 -> empname、branchname。
Class 具有属性的分支 --> 分支名称。

而不是常见的属性(分支名称)作为关系
我想将这些作为边 (InBranch).

我正在努力使工作成为类似于以下的结构:

CREATE EDGE InBranch FROM (SELECT FROM Employee) TO (SELECT FROM Branch) WHERE Employee.branchname = Branch.branchname

这是根据 Luca Garulli 的代码直观地设计的:

create edge Owns from (select from Person) to (select from Country)

来自 OrientDB: Using Schemas with Graphs, Part 1

你不能直接通过sql完成,但你可以使用JS函数:

var g = orient.getGraph();
var emp = g.command('sql','select from Employee');

for each (a in emp){
  br = g.command('sql','select from Branch where branchname = "' + a.getProperty('branchname') + '"');
  for each (b in br){
    g.command('sql','create edge inBranch from ' + a.getId() + ' to ' + b.getId());
   }
}