Skip to content

属性操作

设置属性

基本语法

cypher
// 为节点设置属性
MATCH (节点变量:标签)
WHERE 条件
SET 节点变量.属性 =

// 为关系设置属性
MATCH (源节点)-[关系变量:关系类型]->(目标节点)
WHERE 条件
SET 关系变量.属性 =

示例

  1. 设置单个属性

    cypher
    // 为节点设置属性
    MATCH (p:Person {name: 'John'})
    SET p.age = 31
    RETURN p
    
    // 为关系设置属性
    MATCH (a:Person {name: 'John'})-[r:FRIENDS_WITH]->(b:Person {name: 'Alice'})
    SET r.since = 2010
    RETURN r
  2. 设置多个属性

    cypher
    MATCH (p:Person {name: 'John'})
    SET p.age = 31, p.email = 'john.doe@example.com', p.city = 'New York'
    RETURN p
  3. 使用映射设置属性

    cypher
    MATCH (p:Person {name: 'John'})
    SET p = {name: 'John Doe', age: 31, email: 'john.doe@example.com'}
    RETURN p
  4. 合并属性

    cypher
    MATCH (p:Person {name: 'John'})
    SET p += {age: 31, email: 'john.doe@example.com'}
    RETURN p
  5. 使用参数设置属性

    cypher
    MATCH (p:Person {name: 'John'})
    SET p = $personProperties
    RETURN p
    
    // 参数示例: {personProperties: {age: 31, email: 'john.doe@example.com'}}

查询属性

基本语法

cypher
MATCH (节点变量:标签)
WHERE 条件
RETURN 节点变量.属性

MATCH (源节点)-[关系变量:关系类型]->(目标节点)
WHERE 条件
RETURN 关系变量.属性

示例

  1. 查询单个属性

    cypher
    MATCH (p:Person {name: 'John'})
    RETURN p.name, p.age
  2. 查询所有属性

    cypher
    MATCH (p:Person {name: 'John'})
    RETURN p
  3. 根据属性值查询

    cypher
    MATCH (p:Person)
    WHERE p.age > 25
    RETURN p.name, p.age
  4. 查询关系属性

    cypher
    MATCH (a:Person)-[r:FRIENDS_WITH]->(b:Person)
    RETURN a.name, r.since, b.name
  5. 使用属性进行计算

    cypher
    MATCH (p:Person)
    RETURN p.name, p.age, p.age * 12 AS months_old

更新属性

基本语法

cypher
MATCH (节点变量:标签)
WHERE 条件
SET 节点变量.属性 = 新值

MATCH (源节点)-[关系变量:关系类型]->(目标节点)
WHERE 条件
SET 关系变量.属性 = 新值

示例

  1. 更新单个属性

    cypher
    MATCH (p:Person {name: 'John'})
    SET p.age = p.age + 1
    RETURN p
  2. 基于其他属性更新

    cypher
    MATCH (p:Person)
    SET p.full_name = p.first_name + ' ' + p.last_name
    RETURN p
  3. 条件更新

    cypher
    MATCH (p:Person)
    WHERE p.age >= 18
    SET p.status = 'adult'
    RETURN p
  4. 更新关系属性

    cypher
    MATCH (a:Person)-[r:FRIENDS_WITH]->(b:Person)
    WHERE r.since < 2010
    SET r.status = 'long-term'
    RETURN r

删除属性

基本语法

cypher
MATCH (节点变量:标签)
WHERE 条件
REMOVE 节点变量.属性

MATCH (源节点)-[关系变量:关系类型]->(目标节点)
WHERE 条件
REMOVE 关系变量.属性

示例

  1. 删除单个属性

    cypher
    MATCH (p:Person {name: 'John'})
    REMOVE p.age
    RETURN p
  2. 删除多个属性

    cypher
    MATCH (p:Person {name: 'John'})
    REMOVE p.age, p.email
    RETURN p
  3. 删除关系属性

    cypher
    MATCH (a:Person)-[r:FRIENDS_WITH]->(b:Person)
    REMOVE r.since
    RETURN r
  4. 条件删除属性

    cypher
    MATCH (p:Person)
    WHERE p.age IS NULL
    REMOVE p.age
    RETURN p

小结

属性操作是管理节点和关系数据的重要部分,通过属性可以存储和查询详细的信息。通过本文的介绍,您应该掌握了属性操作的基本语法和技巧。在接下来的章节中,我们将介绍基础查询技巧,这是使用 Cypher 进行数据查询的核心内容。