温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

neo4j支持哪些数据类型

发布时间:2026-09-29 21:14:55 来源:亿速云 阅读:113 作者:小樊 栏目:数据库

Neo4j 是一种图数据库,其数据模型由 节点(Node)、关系(Relationship) 和 属性(Property) 组成。Neo4j 的“数据类型”通常指 属性值(Property types),以及图结构本身的元素类型。

下面按类别说明 Neo4j 支持的数据类型。


一、属性数据类型(Property Types)

Neo4j 中节点的属性和关系的属性支持以下类型:

1. 数值类型

  • Integer(64 位有符号整数)
  • Float(64 位浮点数)

2. 字符串类型

  • String(UTF-8 编码)

3. 布尔类型

  • Boolean(true / false)

4. 空间类型(Spatial Types)

  • Point
    • 2D / 3D
    • 支持坐标系(如 WGS84、Cartesian)

示例:

RETURN point({latitude: 31.23, longitude: 121.47})

5. 时间类型(Temporal Types)

  • Date
  • Time
  • LocalTime
  • DateTime
  • LocalDateTime
  • Duration

示例:

RETURN date('2024-01-01')
RETURN duration('P1Y2M')

6. 集合类型(Collection Types)

属性本身不支持嵌套对象,但可以是以下类型的数组(同构):

  • List / Array
    • Integer[]
    • Float[]
    • String[]
    • Boolean[]
    • Point[]
    • Date[] 等

⚠️ 注意:

  • 数组中元素类型必须一致
  • 不支持对象数组或混合类型数组

二、图结构类型(Graph Types)

这些是 Neo4j 核心模型元素,不是“属性类型”,但很重要:

  • Node(节点)
  • Relationship(关系)
  • Path(路径)
  • RelationshipType(关系类型)
  • Label(节点标签)

示例:

MATCH p = (a:Person)-[:KNOWS]->(b)
RETURN p

三、Cypher 中的临时类型(查询时使用)

在 Cypher 查询中还会用到一些“逻辑类型”:

  • Map(键值对,仅用于查询表达式)
  • Null
  • Any(泛型)

示例:

RETURN {name: 'Tom', age: 30}

四、不支持的类型(常见误区)

Neo4j 不支持:

  • 嵌套对象(JSON 对象作为属性)
  • Map / Object 作为属性值
  • 混合类型数组
  • BLOB / Binary 类型

如需复杂结构,通常做法是:

  • 拆成节点和关系
  • 或使用 JSON 字符串存储(不推荐用于查询)

五、总结表

类别 支持类型
数值 Integer, Float
字符 String
布尔 Boolean
时间 Date, Time, DateTime, Duration 等
空间 Point
集合 同构数组
图结构 Node, Relationship, Path
查询类型 Map, Null

如果你需要 Neo4j 与 Java / Python 类型对照,或者 ** Neo4j 5.x 新特性**,我也可以继续补充。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手