返回动态属性 - Neo4j 客户端

Returning dynamic properties - Neo4j Client

在我的应用程序中,我根据用户提供的属性创建了一个节点,例如我创建了一个 Score 类型的节点(类型不会改变)和 TeamATeamB 等属性,但这些都是动态的(用户可以输入任何他们想要的 属性 ).以后如何检索该节点的动态属性? 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)