Skip to content

节点操作

创建节点

基本语法

cypher
CREATE (节点变量:标签 {属性:, ...})

示例

  1. 创建单个节点

    cypher
    // 创建一个 Person 节点
    CREATE (p:Person {name: 'John', age: 30, email: 'john@example.com'})
    
    // 创建一个带有多个标签的节点
    CREATE (p:Person:Employee {name: 'John', department: 'IT'})
  2. 创建多个节点

    cypher
    // 创建多个 Person 节点
    CREATE (
      p1:Person {name: 'John', age: 30},
      p2:Person {name: 'Alice', age: 28},
      p3:Person {name: 'Bob', age: 32}
    )
  3. 使用参数创建节点

    cypher
    // 使用参数
    CREATE (p:Person $person)
    
    // 参数示例: {person: {name: 'John', age: 30}}

查询节点

基本语法

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

示例

  1. 查询所有节点

    cypher
    // 查询所有节点
    MATCH (n)
    RETURN n
    
    // 查询所有 Person 节点
    MATCH (p:Person)
    RETURN p
  2. 根据属性查询

    cypher
    // 根据名称查询
    MATCH (p:Person {name: 'John'})
    RETURN p
    
    // 使用 WHERE 子句
    MATCH (p:Person)
    WHERE p.age > 25
    RETURN p
  3. 根据多个条件查询

    cypher
    MATCH (p:Person)
    WHERE p.age > 25 AND p.name STARTS WITH 'J'
    RETURN p
  4. 查询带标签的节点

    cypher
    // 查询同时具有 Person 和 Employee 标签的节点
    MATCH (p:Person:Employee)
    RETURN p

更新节点

基本语法

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

示例

  1. 更新单个属性

    cypher
    MATCH (p:Person {name: 'John'})
    SET p.age = 31
    RETURN p
  2. 更新多个属性

    cypher
    MATCH (p:Person {name: 'John'})
    SET p.age = 31, p.email = 'john.doe@example.com'
    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:Employee
    RETURN p
  5. 移除标签

    cypher
    MATCH (p:Person:Employee {name: 'John'})
    REMOVE p:Employee
    RETURN p

删除节点

基本语法

cypher
MATCH (节点变量:标签)
WHERE 条件
DELETE 节点变量

示例

  1. 删除单个节点

    cypher
    MATCH (p:Person {name: 'John'})
    DELETE p
  2. 删除多个节点

    cypher
    MATCH (p:Person)
    WHERE p.age > 60
    DELETE p
  3. 删除节点及其关系

    cypher
    // 先删除关系,再删除节点
    MATCH (p:Person {name: 'John'})-[r]-()
    DELETE r
    
    MATCH (p:Person {name: 'John'})
    DELETE p
    
    // 或使用 DETACH DELETE
    MATCH (p:Person {name: 'John'})
    DETACH DELETE p
  4. 删除所有节点

    cypher
    // 注意:这会删除数据库中的所有节点和关系
    MATCH (n)
    DETACH DELETE n

小结

节点操作是 Neo4j 中的基础操作,包括创建、查询、更新和删除节点。通过本文的介绍,您应该掌握了节点操作的基本语法和技巧。在接下来的章节中,我们将介绍关系操作,这是图数据库的核心特性。