2015-10-07 61 views
2

我正在为实时更新多个客户端的Neo4j数据的应用程序工作。不同客户端机器上的时间可能不同,所以任何时间戳都需要由Neo4j数据库本身来设置。在Neo4j REST API上使用TIMESTAMP()

Neo4j REST API为本地运行TIMESTAMP()提供了什么可能性并将它插入到字段中?

我知道我可以创建一个查询像...

WITH TIMESTAMP() AS timestamp 
MATCH (node) 
WHERE id(node) = {id} 
SET node.updatedAt = timestamp 
    , node.property = "new value" 
RETURN node 

...并使用transaction来执行它的远程服务器上。但这是唯一的解决方案吗?有没有办法使用这个URI,以便数据库能够动态地创建适当的值?

回答

1

Neo4j在这种情况下,REST API非常有限。正如您所提到的,您可以使用Cypher REST端点并手动设置该值。

另一种选择是编写自己的Neo4j非托管扩展,它将使用事务事件API。它与存储过程类似。

这里是很好的文章如何通过使用GraphAware Framework编写扩展 - http://graphaware.com/neo4j/transactions/2014/07/11/neo4j-transaction-event-api.html

另外这里的简单真实世界的例子,这种扩展 - https://github.com/graphaware/neo4j-uuid