返回动态属性 - Neo4j 客户端
Returning dynamic properties - Neo4j Client
在我的应用程序中,我根据用户提供的属性创建了一个节点,例如我创建了一个 Score
类型的节点(类型不会改变)和 TeamA
、TeamB
等属性,但这些都是动态的(用户可以输入任何他们想要的 属性 ).以后如何检索该节点的动态属性? Neo4j 客户端迫使我创建一个 class 类型 Score
的固定属性,例如.Return(score=> score.As<Score>().**FIXED_PROPERTY_NAME**);
但我想在那里传递动态 属性 的名称,例如TeamA
,我该如何实现?
简短的回答是您无法按照您尝试的方式进行操作。正如您所说,neo4jclient 是强类型的。您可以按照与此答案相同的方式将自己的响应传递给动态类型来解决此问题:Casting nodes of an unknown type
而不是创建具有 TeamA and TeamB
、
属性的 Score
class
创建广义 class 并使用字典作为 属性 并维护
TeamA and TeamB
作为键。
我详细回答了类似的问题。
这个怎么样?
WITH ['p1', 'p2', 'p3', 'p4'] AS properties
MATCH(score:Score)
WHERE score.cond = "some condition"
UNWIND properties AS key
WITH COLLECT([key, score[key]]) AS pairs
RETURN apoc.map.fromPairs(pairs)
在我的应用程序中,我根据用户提供的属性创建了一个节点,例如我创建了一个 Score
类型的节点(类型不会改变)和 TeamA
、TeamB
等属性,但这些都是动态的(用户可以输入任何他们想要的 属性 ).以后如何检索该节点的动态属性? Neo4j 客户端迫使我创建一个 class 类型 Score
的固定属性,例如.Return(score=> score.As<Score>().**FIXED_PROPERTY_NAME**);
但我想在那里传递动态 属性 的名称,例如TeamA
,我该如何实现?
简短的回答是您无法按照您尝试的方式进行操作。正如您所说,neo4jclient 是强类型的。您可以按照与此答案相同的方式将自己的响应传递给动态类型来解决此问题:Casting nodes of an unknown type
而不是创建具有 TeamA and TeamB
、
Score
class
创建广义 class 并使用字典作为 属性 并维护
TeamA and TeamB
作为键。
我详细回答了类似的问题
这个怎么样?
WITH ['p1', 'p2', 'p3', 'p4'] AS properties
MATCH(score:Score)
WHERE score.cond = "some condition"
UNWIND properties AS key
WITH COLLECT([key, score[key]]) AS pairs
RETURN apoc.map.fromPairs(pairs)