我希望定期刷新我的neo4j数据库中的节点数据。我的需求的一个很好的例子是公司员工--如果一个员工被解雇,他们将从图表中完全删除,并添加新的员工。真的,删除这个标签的所有节点并获取一个新的数据集可能就足够了--但感觉相当难看。有没有更优雅的解决方案?我的最新数据存在于CSV中,我想每天获取这些数据。
nxowjjhe1#
您可以在您的节点上放置“上次更新”的时间戳。每天,使用MERGE进行更新。如果数据库上存在CSV数据,则使用MERGE的ON MATCH子句更新时间戳。如果CSV数据不存在,MERGE将创建新节点(确保添加某种描述的时间戳属性)。例如:
MERGE
ON MATCH
MERGE (n:Person {<selection_filter>}) ON CREATE SET <required_properties>, n.lastUpdated = date() ON MATCH SET n.lastUpdated = date()
在使用CSV数据更新图形之后,运行一个查询,该查询删除时间戳在今天之前的所有节点;即尚未更新。您可能会发现,在lastUpated上创建索引将提高删除查询的性能。
1条答案
按热度按时间nxowjjhe1#
您可以在您的节点上放置“上次更新”的时间戳。每天,使用
MERGE
进行更新。如果数据库上存在CSV数据,则使用MERGE
的ON MATCH
子句更新时间戳。如果CSV数据不存在,MERGE
将创建新节点(确保添加某种描述的时间戳属性)。例如:在使用CSV数据更新图形之后,运行一个查询,该查询删除时间戳在今天之前的所有节点;即尚未更新。您可能会发现,在lastUpated上创建索引将提高删除查询的性能。