我正在尝试在Cypher中实现逻辑,根据特定条件(CASEStatement),我会创建一些节点和关系; 代码如下
MATCH (g:Game)-[:PLAYER]->(u:User)-[r1:AT]->(b1:Block)-[:NEXT]->(b2:Block)
WHERE g.game_id='G222' and u.email_id = 'xyz@example.com' and b1.block_id='16'
SET r1.status='Skipped', r1.enddate=20141225
WITH u, b2,b1, g, r1
SET b1.test = CASE b2.fork
WHEN 'y' THEN
MERGE (u)-[r2:STAGE {startdate:20141225, enddate:'99999999', status:'InProgress'}]->(b2 {fork:'fail'}) RETURN 1
ELSE
MERGE (u)-[r2:STAGE {startdate:20141225, enddate:'99999999', status:'InProgress'}]->(b2) RETURN 2
END
WITH u, g
MATCH (u)-[:TIME]->(h:Time)<-[:TIME]-(g)
SET h.after = 0
SET h.before = h.before + 1
Run Code Online (Sandbox Code Playgroud)
在此查询中有一条merge语句WHEN 'y' THEN,此查询会引发错误:
输入']'无效:预期的空格或关系模式(第7行,第82列)"MERGE(u) - [r2:STAGE {startdate:20141225,enddate:'99999999',status:'InProgress'}] - >( b2 {fork:'fail'})返回1"
基本上我正在尝试创建一个基于属性的关系,即MERGE在一个 …
我正在使用以下函数来生成UUID
UUID.randomUUID().toString()
Run Code Online (Sandbox Code Playgroud)
在Prod中,我们基本上有50多个服务器(应用程序服务器 - 每个服务器本身都是一个JVM),并且对于这些服务器中的请求,作为第一步,我们生成一个基本上唯一标识事务的UUID.
我们观察到的是,在服务器6和服务器11中,生成的UUID至少匹配每天10到15条消息,这很奇怪,因为考虑到负载,即每天约100万txns,这个UUID在同一天内重复是很奇怪.
这就是我们到目前为止所做的1)验证了应用程序日志 - 没有找到任何可疑的东西,所有日志都正常2)尝试在生产中使用类似的负载和50多台服务器在测试环境中复制此问题 - 但这没有发生在测试环境中3)检查应用程序逻辑 - 这似乎不是问题,因为除了6和11之外的所有其他48个服务器都具有相同代码库的副本,它们工作得非常好,并且它们每个txn生成唯一的UUID.
到目前为止,我们还没有能够追踪这个问题,我的问题基本上是在JVM级别有什么东西我们缺少或者我们需要为这一个问题设置的UUID参数?
请指教.
谢谢,Deepesh
我需要在将节点插入neo4j db时自动生成序列号,此序列#将类似于节点的id,可用于生成外部URL以直接从UI访问该节点.
这类似于mysql中自动生成序列属性,我们如何通过Cypher在neo4j中执行此操作?我做了一些研究,发现了这些链接
http://neo4j.com/api_docs//1.9.M05/org/neo4j/graphdb/Transaction.html
但是,当我在事务模式下以编程方式执行此操作时,这些链接非常有用,在我的情况下,它们都使用Cypher REST API.
请指教.
谢谢,
Deepesh