0

在这种情况下,我将房屋编号作为节点,我想迭代它们并将它们作为参数传递,以创建人和房屋编号之间的关系,这是代码..

START n=node(*)
WHERE 
  HAS(n.house_no) 
RETURN n;

从上面我会得到房子的节点,然后我想将它们传递给另一个查询

START 
    n=node:node_auto_index(house_no="4-10"),
    n2=node:node_auto_index(houseNo="4-10") 
WHERE 
    HAS(n.house_no) AND HAS(n2.houseNo) AND n.house_no = n2.houseNo
    create UNIQUE
    (n2)-[:LIVESIN]->(n)
    return n2.name

在上面的查询中,我想传递房屋编号的节点属性 ex:house_no

我如何迭代节点并在其中传递一个属性作为参数.. 有没有机会结合这两个查询?

谁能帮我?

4

2 回答 2

2

要组合您的查询,您可以使用WITH. 从文档中:

在 Cypher 中,该WITH子句用于将结果从一个查询传递到下一个查询。

我从未尝试过基于“管道结果”进行索引查找,这是否可行:

START n=node(*)
WHERE HAS(n.house_no)
WITH n.house_no as house_no
START n2=node:node_auto_index(houseNo=house_no)
CREATE UNIQUE n2-[:LIVESIN]->n
RETURN n2.name
于 2013-10-12T10:56:38.457 回答
2

您可以像这样在 start 子句中传递索引查找的参数:

START 
    n =node:node_auto_index(house_no={house_no}),
    n2=node:node_auto_index(houseNo={house_no}) 
WHERE 
    HAS(n.house_no) AND HAS(n2.house_no) AND n.house_no = n2.houseNo
CREATE UNIQUE
    (n2)-[:LIVESIN]->(n)
RETURN n2.name

and then pass a map like


{house_no:"4-10"}
于 2013-10-13T08:25:45.260 回答