【问题标题】:Can we create two dimensional array as node property?我们可以创建二维数组作为节点属性吗?
【发布时间】:2017-12-12 21:37:06
【问题描述】:

我是 Neo4j 的新手,我正在为我的需求建模。有人可以确认,是否可以将按维数组创建为节点属性?这种财产检索的成本有多大?

【问题讨论】:

标签: arrays neo4j cypher


【解决方案1】:

无法创建。如果您尝试,错误消息甚至会告诉限制:

CREATE (node:SomeLabel {prop: [[1, 2], [3, 4]]})

Neo.ClientError.Statement.TypeError

包含集合的集合不能存储在属性中。

有趣的是,如果您添加一个仅包含一个元素的列表,您会得到另一条错误消息(至少在 3.2.6 中):

CREATE (node:SomeLabel {prop: [[1, 2]]})

Neo.ClientError.Statement.TypeError

属性值只能是原始类型或其数组

请注意,这是数据模型的限制。但是,Cypher 查询语言 允许您创建 n 维数组。因此,这是一个完全有效的 Cypher 查询:

RETURN [[1, 2], [3, 4]] AS x

【讨论】:

  • 谢谢。如果 Neo4j 计划在不久的将来增强数组数据类型,我会很好奇。
  • 好问题,但我不知道他们是否打算改变这一点。无论如何,您几乎可以在所有实际应用中很好地解决它。
猜你喜欢
  • 2017-03-25
  • 1970-01-01
  • 1970-01-01
  • 2022-01-10
  • 2013-04-03
  • 2015-08-25
  • 1970-01-01
  • 2014-09-21
  • 1970-01-01
相关资源
最近更新 更多