このようなグラフを想定すると:

このようなGremlinクエリを使用して、すべてのユーザーのすべての車を取得します。
g.v(0).out('HAS_USER').out('HAS_CAR')
それでは、赤い車だけに絞り込みましょう。
g.v(0).out('HAS_USER').out('HAS_CAR').filter { it.Color == "Red" }
最後に、車ではなくユーザーが必要です。グレムリンが実際のグレムリン(小さな生き物)のように機能していると考えるのが最も簡単です。あなたは彼に、ユーザーに向かって走り、次に各車に向かって走り、次に各車の色をチェックするように指示しました。ここで、彼が元のユーザーに戻る必要があります。これを行うには、次のようにクエリにマークを付けます。
g.v(0).out('HAS_USER').as('user').out('HAS_CAR').filter { it.Color == "Red" }.back('user')
Neo4jClientを使用してC#でこれを作成する方法は、次のようになります。
graphClient
.RootNode
.Out<User>(HasUser.TypeKey)
.As("user")
.Out<Car>(HasCar.TypeKey, c => c.Color == "Red")
.BackV<User>("user")
ここでの唯一の違いは、エッジと頂点にそれぞれBackE
またはを使用する必要があることです。これは、静的に型指定されたC#の世界では、さまざまな列挙型を返すことができるように、さまざまなメソッド名を使用する必要があるためです。BackV
Back
お役に立てば幸いです。:)
-タサム