1

エッジのない任意の 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)

しかし、それもうまくいきません。何かご意見は?Orient 2.1.x を使用しています

4

3 に答える 3

2

回避策として、この JavaScript 関数を 1 つのパラメーター (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)
于 2016-02-15T14:29:59.010 に答える
0

入力エッジまたは出力エッジを持たないすべての頂点 (V) を選択する方法は次のとおりです。

select from (select @this, bothE().size() as n from V) where n = 0
于 2016-02-06T18:24:13.813 に答える
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

それが役に立てば幸い。

よろしく、

ミケラ

于 2016-02-08T14:00:33.707 に答える