订阅事件

这是 GraphQL 库版本 6 的文档。对于长期支持 (LTS) 版本 5,请参阅 GraphQL 库版本 5 LTS

此页面涵盖了 Neo4j GraphQL 库提供的各种订阅选项。

CREATE

CREATE 事件的订阅**仅**监听新创建的节点,而不是新的关系。在这种情况下,每个新节点都会触发一个新的事件,其中包含其属性。

此操作使用顶级订阅 [type]Created 执行,其中包含以下字段

  • event:触发此订阅的事件(在本例中为 CREATE)。

  • created<typename>:新创建节点的顶级属性,不包括关系。

  • timestamp:进行突变的时间戳。如果同一个查询触发多个事件,则它们应该具有相同的时间戳。

例如,考虑以下类型定义

type Movie @node {
    title: String
    genre: String
}

Movie 类型任何新创建的节点的订阅应该如下所示

subscription {
    movieCreated {
        createdMovie {
            title
            genre
        }
        event
        timestamp
    }
}

UPDATE

UPDATE 事件的订阅**仅**监听节点属性更改,而不是对其他字段的更新。在这种情况下,每次修改节点顶级属性的突变都会触发一个新的事件。

此操作使用顶级订阅 [type]Updated 执行,其中包含以下字段

  • event:触发此订阅的事件(在本例中为 UPDATE)。

  • updated<typename>:更新节点的顶级属性,不包括关系。

  • previousState:节点在 UPDATE 事件之前的先前顶级属性。

  • timestamp:进行突变的时间戳。如果同一个查询触发多个事件,则它们应该具有相同的时间戳。

例如,考虑以下类型定义

type Movie @node {
    title: String
    genre: String
}

Movie 类型任何属性最近更新的节点的订阅应该如下所示

subscription MovieUpdated {
    movieUpdated {
        event
        previousState {
            title
            genre
        }
        updatedMovie {
            title
        }
        timestamp
    }
}

DELETE

DELETE 事件的订阅**仅**监听正在删除的节点,而不是删除的关系。此操作使用顶级订阅 [type]Deleted 执行,其中包含以下字段

  • event:触发此订阅的事件(在本例中为 DELETE)。

  • deleted<typename>:已删除节点的顶级属性,不包括关系。

  • timestamp:进行突变的时间戳。如果同一个查询触发多个事件,则它们应该具有相同的时间戳。

例如,考虑以下类型定义

type Movie @node {
    title: String
    genre: String
}

Movie 类型任何已删除节点的订阅应该如下所示

subscription {
    movieDeleted {
        deletedMovie {
            title
        }
        event
        timestamp
    }
}