如何使用.net调用neo4j apoc函数

时间:2018-03-06 12:43:06

标签: .net neo4j neo4jclient neo4j-apoc

节点:

Template -> Id =1 , Name = T1;
Segment -> Id =1 , Name = S1;
Segment -> Id =2 , Name = S2;

关系:

T1 - [r1:REL] -> S1;
T1 - [r2:REL] -> S2

每个关系(r1和r2)都有一个名为LineIds的属性,它是整数数组。 因此,r1.LineIds = [1,3]和 r2.LineIds = [1,2]

我正在尝试获取两个LineIds的交集。

我正在尝试使用.Net驱动程序Neo4jClient调用apoc.coll.intersection()函数,但它会抛出一些或其他错误。 但是,它正在像Neo4j浏览器一样工作

match (:Template)- [r1:REL] -> (m:Segment), (:Template) - [r2:REL] -> (n:Segment)
return apoc.coll.intersection(r1.LineIds, r2.LineIds) as result

有人可以告诉我.net中的正确语法吗?

1 个答案:

答案 0 :(得分:0)

您只需拨打apoc,就像调用其他任何功能一样:

var query = client.Cypher
    .Match("(:Template)-[r1:REL]->(m:Segment), (:Template)-[r2:REL]->(n:Segment)")
    .Return(() => new
    {
        result = Return.As <IEnumerable<int>> ("apoc.coll.intersection(r1.LineIds, r2.LineIds)")
    });

foreach(var result in query.Results)
{
    /* Do something here */
}