2016-08-25 5 views
1

ruby​​ on railsのgem orientedを使用しています。これにより、Java APIを使用してOrientのデータベースとインターフェースすることができます。OrientDB:特定の軽量エッジを削除するには?

は、私は3つの頂点v0 (rid #10:0)v1 (rid #10:1)v2 (rid #10:2)を持っている、そして私はそうのようにそれらを接続するエッジを追加すると言う:

connection = Oriented.connection 
graph = connection.graph 

v0 = graph.getVertex("#10:0") 
v1 = graph.getVertex("#10:1") 
v2 = graph.getVertex("#10:2") 

graph.addEdge(nil, v0, v1, 'owns') 
graph.addEdge(nil, v0, v2, 'owns') 

だから今、私のデータベースは次のようになります。

rid | in_owns | out_owns 
------|---------|------------- 
#10:0 |   | #10:1, #10:2 
#10:1 | #10:0 | 
#10:2 | #10:0 | 

そして今、私#10:0と#10:1の間のエッジを削除したい、好ましくはJavaのAPIを使用してそれをサポートします(トランザクション内でSQLクエリを実行する方法を見つけることができませんでした)

答えて

1

軽量エッジがTInkerPopのJava APIからの定期的なエッジのようなものですので、あなたはそれらを参照するとき、あなたはそれのいずれかを削除したい、TinkerPopのAPIを使用します。

OrientEdge.remove(); 
+0

しかし、どのように私はエッジということですか?軽量なので、ドキュメントがなく、エッジには取り除かれていないことを意味します。私が理解することから、v0の 'out_owns'プロパティにアクセスしてv1への参照を削除し、v1の' in_owns'プロパティに同じことをしますが、これを達成できませんでした。 – bpromas

+1

'Iterable edges = v。 getEdges(Direction.OUT、 "friend");if((Integer)e.getProperty( "age")> 10) for(Edge e:edges) } ' – Lvca