neo4j nodejs强度或属性的关系修改:怎么做?

时间:2013-07-21 09:36:44

标签: node.js neo4j graph-databases

我遇到了一个带有nodejs的neo4j计数请求的问题。

这是我的问题: 当我插入数据时,它将呈现如下:

start a = node(0)

create unique a-[:HAS_ID]->(b{id:'xx'})

create unique b-[:HAS_INFO]->(c{info:'xx'})

return a,b,c;

因为它是唯一的节点,所以如果存在相同的节点,它将不会插入新节点。但是,我想要计算多少请求来调用此查询。 例如:

   request: -domain/id01/info

     --return a node[0], b node[1] and c node[2]

添加其他数据:

     request: -domain/id02/info
      -- return : a node[0], b node[3], c node[4]

再次打电话:

     request: -domain/id01/info

     --return a node[0], b node[1] and c node[2] //but here is any attribute or properties count to 2.

我读过有关力量的任何解决方案。它告诉我创建一个关系属性作为例子:

     [:HAS_INFO{strength:num}]

让它增加,但我仍然没有得到它。 有人请给我解决方案并告诉我该怎么做。 谢谢。

更多信息:Representing (and incrementing) relationship strength in Neo4j

1 个答案:

答案 0 :(得分:1)

您可以使用CASE语句,请参阅http://gist.neo4j.org/?6052414以获取示例。随意为基础要点改进它!

MATCH path=(a)-[rel:HAS_INFO]->(b)
WHERE a.name?='A' AND b.name?='Info'
SET rel.weight = (
  CASE
   WHEN not(has(rel.weight))
   THEN 0
   ELSE rel.weight + 1
  END)
RETURN path, rel.weight;