制作无边记录副本

Making a copy of record without edges

有没有办法复制任意一条没有边缘的 OrientDB 记录?我修改了一个用于复制记录的原始命令(来自文档)并向其添加了 fetchplan,但它不起作用(坦率地说,对我来说,解析这个特定命令似乎有问题,但希望我错了)

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

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

这个报错:

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)

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

以下是 select 所有没有传入或传出边的顶点 (V) 的方法:

select from (select @this, bothE().size() as n from V) where n = 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

希望对您有所帮助。

此致,

米歇拉

作为解决方法,您可以使用此 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)