私は最近、.NET統合にNeo4JClientを使い始めましたが、(最終的には)ほとんどのことを理解しました。しかし、これは私を困惑させました。
Cypherクエリから、できればPOCOオブジェクトでパスを取得して、これらのクエリのフロントエンドで作業できるようにすることに興味があります。
だから私の質問は本質的にNeo4JClientでこれをどのように行うのですか?そして、私ができない場合、他のNeo4J .NETクライアントのいずれかがこれをサポートしていますか?
サンプルのcypherクエリ:
start n = node:idx(id="{id}")
MATCH p=(n)-[:RELATED_TO*0..3]-()
RETURN p;
したがって、特定のノードの周囲にある、着信と発信の両方の関係が3の深さのすべてのノードが必要です。別のタイプのクエリもありますが、withsを使用しているため、Neo4JClientがそれをサポートするかどうか/どのようにサポートするかを確認する必要があります(別の質問があります) )。
これまで、私はオープンセットとクローズドセットでGremlinを使用して、カスタムオブジェクトにそのサブリレーションシップに関する情報を入力してきました。それは決して効率的ではないので、なぜ私はどういうわけかパスでそれをやりたいのです。問題のカスタムオブジェクトは次のようになります。
public class ConnectedNode : BaseNode
{
public List<NodeRelation> RelatedNodes { get; set; }
public ConnectedNode()
{
RelatedNodes = new List<NodeRelation>();
}
}
public class NodeRelation
{
// ... various properties for relationship payload type stuff
public ConnectedNode RelatedNode { get; set; }
public RelationshipDirection Direction { get; set; }
}
効率的である限り、探しているパス上のノードと関係データをプルバックするものは何でも満足しています。