订阅事件
这是 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
}
}