【问题标题】:OrientDB: creating edge from parent to childOrientDB:从父级到子级创建边缘
【发布时间】:2016-04-12 14:37:39
【问题描述】:

我是图形数据库的新手。我很确定答案应该是简单的一两个命令行。

我有非常简单的架构。人员和电子邮件类。 Person 和 Email、SendFrom 和 SendTo 之间存在边线。我想在通过同一电子邮件连接的 Person 顶点之间创建边。

例如,如果 A 向 B 发送电子邮件。我想在 A 和 B 之间创建一条边,并增加边的计数属性。

我试过类似CREATE EDGE FROM (SELECT in() from Email) TO (SELECT out() from Email)。由于我使用的是 pyorient,一个用于 OrientDB 的 python 驱动程序,这可以用 Python 脚本或类似 SQL 的语言来完成。

如果您需要更多信息,我将编辑我的帖子。请告诉我。

【问题讨论】:

  • 一个javascript函数对你有用吗?
  • @AlessandroRota 我一定会试一试的。 API 的类型实际上无关紧要。

标签: orientdb graph-databases pyorient


【解决方案1】:

我试过这个结构

这是图表。

我使用了这个 javascript 函数。

var g=orient.getGraph();
var c=g.command("sql","select in('SendFrom')[0].@rid as SF, out('SendTo')[0].@rid as ST from email");
for(i=0;i<c.length;i++){
    var p1=c[i].getProperty("SF");
    var id1=p1.toString();
    id1=id1.substring(id1.lastIndexOf("[")+1,id1.lastIndexOf("]"));
    var p2=c[i].getProperty("ST");
    var id2=p2.toString();
    id2=id2.substring(id2.lastIndexOf("[")+1,id2.lastIndexOf("]"));
    g.command("sql","create edge e from " + id1 + " to " + id2 );
}

这是新结构

这是新的图表

希望对你有帮助。

【讨论】:

  • 这很好用。我想我可以通过某种“加入”操作来制作一个“创建边缘”命令。也许迭代结果是最简单的。我将发布我的python版本。谢谢。
【解决方案2】:

这只是 Alessandro 使用 pyorient 回答的 Python 版本。

cluster_id = client.command("create class Email_ex extends E")                   
rst = client.query("select in('SendFrom') as SF, out('SendTo') as ST " +         
                   "from Email limit -1")                                                                                                    
for email in rst:                                                                
    for sf in email.SF:                                                          
        for st in email.ST:                                                      
            edge_ex = client.command("create edge Email_ex from " +  
                                     str(sf) + " to " + str(st)); 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多