使用变更数据捕获 (CDC)

变更数据捕获(CDC)查询可通过使用 cdc 命名空间中的过程,由 Cypher® Builder 创建

  • Cypher.db.cdc.current()

  • Cypher.db.cdc.earliest()

  • Cypher.db.cdc.query(from, selectors)

在 Neo4j 5.17 之前,cdc 过程的命名空间是 cdc.x 而不是 db.cdc.x,该命名空间可通过已弃用的函数 Cypher.cdc.x 在 Cypher Builder 中使用。

示例

获取当前更改标识符

为了查询更改,您必须获取一个更改标识符。可以使用 cdc.current()cdc.earliest() 来完成此操作。要获取最新的更改标识符,请按照以下说明进行。

const query = Cypher.db.cdc.current().yield("id");
const { cypher } = query.build();
CALL db.cdc.current() YIELD id

查询更改

要查询图中的更改,请按照以下说明进行。

const query = Cypher.db.cdc.query(fromId);
const { cypher } = query.build();
CALL db.cdc.query("cdc-id", [])

使用查询选择器

要使用 CDC 选择器,必须为每个选择器定义一个包含选择器模式属性的 Map

const fromId="cdc-id";
const selector = new Cypher.Map({
    select: new Cypher.Literal("e"),
    operation: new Cypher.Literal("c"),
    changesTo: new Cypher.List([new Cypher.Literal("name"), new Cypher.Literal("title")]),
});


const query = Cypher.db.cdc.query(fromId, [selector]);
const { cypher } = query.build();
CALL db.cdc.query("cdc-id", [{
    select: "e",
    operation: "c",
    changesTo: ["name", "title"]
}])
© . This site is unofficial and not affiliated with Neo4j, Inc.