2016-03-24 10 views
0

私は2つの頂点を持っています - UserNameとCompanyNameという名前です。ユーザーが企業にアクセスするたびに、エッジフィールドが増えます(つまりpageVisit)。個々の結果について私はそれらのpageVisit値を取得していますが、どのように私はすべてのユーザーpageVisitsの合計を得ることができますか?gremlinを使用してグラフデータベースのエッジフィールドの合計を取得する方法は?

私は会社のページに総ページ訪問数を表示したいので、エッジ値を追加する方法が見つかりませんでした。

答えて

3

あなたはsum() stepを使用することができます。

gremlin> graph = TinkerGraph.open() 
==>tinkergraph[vertices:0 edges:0] 
gremlin> vUser1 = graph.addVertex("UserName","user1") 
==>v[0] 
gremlin> vUser2 = graph.addVertex("UserName","user2") 
==>v[2] 
gremlin> vCompany = graph.addVertex("CompanyName","Company") 
==>v[4] 
gremlin> vUser1.addEdge('visits',vCompany,'pageVisit',10) 
==>e[6][0-visits->4] 
gremlin> vUser2.addEdge('visits',vCompany,'pageVisit',20) 
==>e[7][2-visits->4] 
gremlin> g = graph.traversal() 
==>graphtraversalsource[tinkergraph[vertices:3 edges:2], standard] 
gremlin> g.V(vCompany).inE('visits').values('pageVisit').sum() 
==>30 
+0

私はpageVisit数を追加すること、それは文字列として保存されるためRexsterを使用しています。文字列の値にsum()演算子を使用するにはどうすればよいですか? –

+0

私はそれを文字列として格納することはお勧めできません。データはそのネイティブタイプで保存する必要があります。データベースに書き込むときにその文字列を数値に変換します。また、この回答はTinkerPop 3.xの構文であり、TinkerPop 3.xにはRexsterはありません。代わりに、Rexsterの代わりのGremlin Serverを使用してください:http://tinkerpop.apache.org/docs/3.1.1-incubating /リファレンス/#gremlin-server –

関連する問題