Neo4JClient:如何找到给定节点的关系列表(任何类型的)
本文关键字:列表 关系 任何 类型 节点 何找 Neo4JClient | 更新日期: 2023-09-27 18:33:52
我知道如何获取相关节点,并指定关系以查找这些节点,但似乎没有任何机制来查找关系本身?
浏览 Neo4JClient 的源代码,您可以找到"关系"类型,但它仅在创建关系时使用,而不是在检索它们时使用。
检索时,你可以得到一个"关系实例",但它由一个关系引用和两个节点引用组成。 除了与每个关联的唯一整数 ID 之外,它们都没有任何与之关联的数据。
听起来您希望访问存储在关系中的数据。我们将这些称为"有效载荷"。
您可以像这样查询它们:
client
.RootNode
.OutE<FooPayload>()
.Select(p =>
{
p.Reference.Id, // Relationship ID
p.StartNodeReference, // Outbound vertex
p.EndNodeReference, // Inbound vertex
p.Data, // Payload as FooPayload
p.Data.Bar // A property in the payload
});
更有可能的是,您希望使用 OutE 的重载来按类型过滤关系,例如:
client
.RootNode
.OutE<FooPayload>("HAS_FOO")
如果在不使用泛型类型参数的情况下使用 OutE 的重载,您将获得引用,但没有有效负载数据(因为我们不知道将数据反序列化为什么)。
呵呵。
-- 塔瑟姆