制作没有边缘的记录副本

时间:2016-02-06 11:29:18

标签: orientdb orientdb-2.1

有没有办法在没有边缘的情况下制作任意OrientDB记录的副本?我修改了一个原始命令(来自文档)来复制记录并添加了fetchplan到它,但它不起作用(坦率地说,看起来像解决这个特定命令的问题,但希望我错了)

这个执行得很好,但边缘仍然存在:

insert into Test from (select from Test where @rid=#102:119 fetchplan in_*:-2 out_*:-2)
com.orientechnologies.orient.core.command.OCommandExecutorNotFoundException: Cannot find a command executor for the command request: sql.(SELECT FROM Test WHERE @rid = #102:119 FETCHPLAN in_*:-2 out_*:-2)

这个错误:

insert into Test content (select @this.toJSON('fetchPlan:in_*:-2 out_*:-2') from Test where @rid=#102:119)

也试过像

这样的人
{{1}}

但这也不起作用。有什么想法吗?我在东方2.1.x

3 个答案:

答案 0 :(得分:2)

作为解决方法,您可以将此javascript函数与一个参数(id)

一起使用
var g=orient.getGraph();
var b=g.command("sql","select @this.toJSON('fetchPlan:in_*:-2 out_*:-2') as json from "+ id);
if(b.length>0){
    var query="insert into Test content " + b[0].getProperty("json") ;
    var myVertex=g.command("sql",query);
    g.commit();
    return myVertex;
}

使用以下命令

select expand(result) from (select yourFunction(#102:119) as result)

答案 1 :(得分:0)

这里是如何选择没有传入或传出边缘的所有顶点(V):

select from (select @this, bothE().size() as n from V) where n = 0

答案 2 :(得分:0)

我尝试了你的查询,我遇到了同样的问题。 我用这种方式解决了它:

insert into Test from select <property-name> from Test where @rid=#102:119

如果你想和fatchplan一起使用,试试这个:

insert into Test from select <property-name> from Test where @rid=#102:119 fetchplan in_*:-2 out_*:-2

希望它有所帮助。

此致

MICHELA