2016-08-30 33 views
0

有沒有SQL方法來實現OrientDB深度克隆?帶SQL或javascript功能的圖形深層克隆

否則是否有一個JavaScript服務器功能(在orientdb studio)的方法可以實現它?

+0

我不認爲這是可能的本地。 –

+0

我認爲用SQL是不可能的,但服務器端JavaScript可以用一些代碼做到這一點。 – tommasop

+0

首先導出然後導入數據庫呢? –

回答

3

我試圖與這個小圖

enter image description here

enter image description here

,我用這個服務器端JavaScript函數

var g=orient.getGraph(); 
var myedge=g.command("sql","select @class as myclass,out,in from e"); 
for(i=0;i<myedge.length;i++){ 
    var myEdgeClass=myedge[i].getProperty("myclass"); 
    var VertexOutId= myedge[i].getProperty("out").getId(); 
    var VertexInId= myedge[i].getProperty("in").getId(); 

    var VertexOut=g.command("sql","select @class as myclass,@this.toJSON('fetchPlan:in_*:-2 out_*:-2') as json   from " + VertexOutId);          
    var query="insert into " + VertexOut[0].getProperty("myclass") + " content"+VertexOut[0].getProperty("json"); 
    var copyVertexOut=g.command("sql",query); 
    g.commit(); 

    var VertexIn=g.command("sql","select @class as myclass,@this.toJSON('fetchPlan:in_*:-2 out_*:-2') as json   from " + VertexInId);          
    query="insert into " + VertexIn[0].getProperty("myclass") + " content"+VertexIn[0].getProperty("json"); 
    var copyVertexIn=g.command("sql",query); 
    g.commit(); 

    query="create edge " + myEdgeClass + " from " + copyVertexOut.getId() + " to " + copyVertexIn.getId(); 
    g.command("sql",query); 

} 

和我

enter image description here

enter image description here

我希望它可以幫助和你一個起點。

+0

謝謝亞歷山德羅它確實是一個很好的起點!即使我想知道是否有來自javascript的特定Java函數調用。 – tommasop