0

我有一个像这样的 Cypher 查询:

START n=node:permit_idx(PmtID= "111")
Match n-[:Assinged]->m<-[:Assinged]-p
RETURN p.PmtID, count(m);

当我尝试使用 Neo4jClient Cypher Query 执行此操作时出现错误

 var results = graphClient
                 .Cypher
                 .Start(new { n = Node.ByIndexLookup("permit_idx", "PmtID", "111") })
                 .Match("Match n-[:Assigned]->m<-[:Assigned]-p")
                 .Return((m, p) => new
                                    {
                                        PDPmtID = "p.PmtID",
                                        MCount = "count(m)"
                                    })
                 .Results;

如果只需要返回一个属性或一个计数,我们可以使用

.Return<int>("count(m)");

但是如何归还财产并一起计算呢?

4

2 回答 2

2
.Return((m, p) => new
{
    PDPmtID = Return.As<int>("p.PmtID"),
    MCount = m.Count()
})

或者,现在首选:

.Return((m, p) => new
{
    Permit = p.As<Permit>(),
    MCount = m.Count()
})
于 2013-08-05T20:32:34.623 回答
1

您需要在复合 Return 子句中使用自定义文本选项:

.Return((m, p) => new
{
    PDPmtID = Return.As<int>("p.PmtID"),
    MCount = Return.As<int>("count(m)")
})

(这是基于Neo4jClient的文档)

于 2013-08-04T01:35:49.940 回答