【问题标题】:OrientDB Query full Graph without Edge ObjectsOrientDB 查询没有边缘对象的完整图
【发布时间】:2016-05-02 09:11:59
【问题描述】:

我想知道是否有一种方法可以使用TRAVERSE * FROM V 查询 OrientDB 中的完整图,而无需将边作为对象。因为通过所有对象中的引用,我从 10 个顶点图中获得了超过 50MB 的数据。我使用orientjs 驱动程序。 我的数据如下所示: 我使用Json-Stringify-Safe 将Json 转换为字符串。

【问题讨论】:

    标签: orientdb orientjs


    【解决方案1】:

    你可以使用

    select *,out.asString(),in.asString() from (traverse *  from V) fetchplan [*] in_*:-2 out_*: -2
    

    希望对你有帮助。

    【讨论】:

    • 你能解释一下为什么要在最后添加 fetchplan 吗?
    • 我添加 fetchplan 以不从 Studio IN('myedge') 和 OUT("myedge") 从顶点显示,如 Michela 的第二个查询。使用 NodeJS,您可以省略 fetchplan。
    【解决方案2】:

    您可以使用这个来排除显示为记录的边缘:

    traverse * from V while @class NOT IN (select distinct(@class) from E)
    

    之前

    之后

    您可以使用这个来排除每条记录的边缘,但它会将边缘显示为记录:

    select from (traverse *  from V) fetchplan [*] in_*:-2 out_*: -2
    

    这是两个查询的混合:

    select from (traverse * from V while @class NOT IN (select distinct(@class) from E)) fetchplan [*] in_*:-2 out_*: -2
    

    希望对你有帮助

    【讨论】:

    • 您在 OrientDB Studio 中执行的第二个查询是完美的,另外两个我没有得到任何边缘。但是当我从我的 NodeJS 服务器执行第二个查询时,我再次获得边缘对象中的引用和 56MB 的数据。
    猜你喜欢
    • 1970-01-01
    • 2015-05-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多