【问题标题】:OrientDB Graph Traversal using java language使用java语言进行OrientDB图遍历
【发布时间】:2018-07-30 19:43:24
【问题描述】:

我是 OrientDb 的新手,并且有一个图形数据库,其中顶点连接为: Node1-[HAS_CHILD]->Node2-[HAS_CHILD]->Node3...(node4 等)等等。 现在我的问题是,给定 Node3 或任何像 node3 这样的节点,我如何遍历直到我到达根节点(Node1)。到目前为止,我已经尝试过以下代码:

GremlinPipeline<Vertex,Vertex> pipe = new GremlinPipeline<>();
    pipe.start(node3).as("start").inE("HAS_CHILD").outV()

【问题讨论】:

    标签: java orientdb


    【解决方案1】:

    鉴于您正在尝试获取传出顶点,您可以使用边缘标签使用 out() 函数:

    GremlinPipeline<Vertex,Vertex> pipe = new GremlinPipeline<>();
    pipe.start(node3).as("start").out("HAS_CHILD")
    

    但是,如果您想回溯,只需将 out() 更改为 in()

    GremlinPipeline<Vertex,Vertex> pipe = new GremlinPipeline<>();
    pipe.start(node3).as("start").in("HAS_CHILD")
    

    OrientDB Docs | SQL Functions - OUT

    OrientDB Docs | SQL Functions - IN

    【讨论】:

    • 但这会给我在距节点 3 1 跳处存在的节点。但我想看看哪个节点是 node3 的父节点,依此类推,直到我到达根节点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多