返回动态属性 - Neo4j客户端

时间:2015-04-11 22:33:32

标签: c# neo4j neo4jclient

在我的应用程序中,我根据用户提供的属性创建节点,例如我创建了一个Score类型的节点(类型没有改变)和TeamATeamB等属性,但那些是动态的(用户可以输入他们想要的任何属性)。如何在以后检索该节点的动态属性? Neo4j客户端迫使我创建一个具有固定属性的Score类,例如.Return(score=> score.As<Score>().**FIXED_PROPERTY_NAME**);但我希望在那里传递动态属性的名称,例如TeamA,我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:1)

这个怎么样?

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)

答案 1 :(得分:0)

简短的回答是你不能按照你想要的方式去做。正如你所说,neo4jclient是强类型的。您可以通过将响应本身传递给动态类型来解决此问题,方法与此答案相同:Casting nodes of an unknown type

答案 2 :(得分:0)

而不是使用属性Score创建TeamA and TeamB类,

使用字典作为属性和维护创建通用类 TeamA and TeamB作为密钥。

我详细回答了类似问题here