1

neo4j で、CP と ANZ として 2 つのノードを作成しました。そのエッジの tx_amount 属性をそれぞれ 100 と 200 にして、その間に Sell と Buy として 2 つのエッジを作成しました。

cp --> 売る -> 100 -> ANZ

ANZ--> 購入 -> 200 -> CP

今、売り手、買い手、tx_amount を取得したいと思います。だから、CPを売り手側として選択した場合。次に、次のように印刷する必要があります。

==> [seller:CP, tx_amount:100, buyer:ANZ]
==> [seller:ANZ, tx_amount:200, buyer:CP]

上記の結果の最初の行は有効な出力を返し、2 行目の買い手側も正しいことを確認してください。2 行目の売り手側は ANZ ではなく、CP です。では、これを解決する方法。

以下のような出力を持つ現在のクエリ:

gremlin> gv(0).outE().inV.as('seller').bothE('Sell','Buy').as('tx_amount').inV.as('buyer').select{it .name}{it.mount}{it.name}.sort{it[2]}

        ==> [seller:CP, tx_amount:100, buyer:ANZ]
        ==> [seller:CP, tx_amount:200, buyer:CP]
4

1 に答える 1

0

headCustomerName をルートとして配置し、headCustomer と childcustomer の間に child_rel を定義することで実現しました。

g.V.has("headCustomerName","ABC Corp.").inE('child_rel').outV().as('buyer').outE('Sell_To').as('tx_amount').inV().as('seller')  \
      .select{it.customerName}{it.amount}{it.customerName}  
==>[buyer:CP, tx_amount:100, seller:ANZ]
==>[buyer:CP, tx_amount:200, seller:SS Tech]
==>[buyer:SAK Corp., tx_amount:400, Supplier:AB Infotech]
...

と 、

g.V.has("headCustomerName","ABC Corp.").inE('child_rel').outV().as('seller').inE('Sell_To').as('tx_amount').outV().as('buyer')    \
      .select{it.customerName}{it.amount}{it.customerName}  
==>[seller:CP, tx_amount:1100, buyer:NEW Int]
==>[seller:CP, tx_amount:1300, buyer:Marry Gold]
==>[seller:SAK Corp., tx_amount:1006, buyer:LLI Corp.]
...

ありがとう。:)

于 2013-09-19T09:32:38.033 に答える