订阅事件
|
这是 GraphQL Library 7 版本的文档。对于长期支持 (LTS) 版本 5,请参考 GraphQL Library 5 LTS 版本。 |
本页介绍 Neo4j GraphQL 库提供的多种订阅选项。
CREATE
对 CREATE 事件的订阅仅监听新创建的节点,而不包括新关系。在这种情况下,每个新节点都会触发一个新事件,包含其属性。
此操作通过顶层订阅 [type]Created 完成,该订阅包含以下字段
-
event:触发此订阅的事件(本例中为CREATE)。 -
created<typename>:新创建节点的顶层属性,不包括关系。 -
timestamp:执行变更的时间戳。如果同一查询触发多个事件,它们应具有相同的时间戳。
例如,考虑以下类型定义
type Movie @node {
title: String
genre: String
}
extend schema @subscription
对 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
}
extend schema @subscription
对 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
}
extend schema @subscription
对 Movie 类型任意已删除节点的订阅示例如下
subscription {
movieDeleted {
deletedMovie {
title
}
event
timestamp
}
}