在neo4j中创建新节点时,创建触发器而不是使用属性created_at创建查询?

时间:2017-04-30 15:20:40

标签: neo4j triggers cypher

我使用Neo4j构建社交网络,在创建新节点时遇到问题。我希望每个节点都具有属性created_at,其值为TIMESTAMP()。我认为有两种方法可以做到这一点:

  1. 创建新节点时,我将created_at = TIMESTAMP()添加到该节点。
  2. 创建触发器:call apoc.trigger.add('add-createat-timestamp', 'UNWIND {createdNodes} AS n SET n.created_at = TIMESTAMP()', {phase:'after'})
  3. 并添加一个问题:如果我使用触发器,我应该使用TIMESTAMP(){commitTime}

1 个答案:

答案 0 :(得分:1)

我会使用APOC docs中的示例,即

CALL apoc.trigger.add('timestamp','UNWIND {createdNodes} AS n SET n.ts = timestamp()', {phase:'after'});

我认为提交时间是时间,事务需要提交。因此,这不是UNIX时间,而是事务提交的时间。请在Docs中查看更多信息。