neo4JClient返回空节点

时间:2014-07-29 10:13:29

标签: neo4jclient

我使用neo4JClient查询图表中的节点列表,并将它们作为表格显示在Web浏览器上。为了获取数据,使用以下代码。

var query = client
    .Cypher
    .Match("DataSpace")
    .Return(DataSpace => DataSpace.As<DataSpace>());
var longBooks = query.Results;
    jsonString = JsonConvert.SerializeObject(longBooks, Formatting.None, settings);
    context.Response.Write(jsonString);

该图包含各种其他节点。

 The Resultset at the Browser Window is : 
 [{"DataSpaceName":"DS1","DataSpaceDescription":"First Dataspace"},{"DataSpaceName":"DS2","DataSpaceDescription":"Second Dataspace"},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]

有返回的空节点,我认为这与图中的其他节点相关。

我可以摆脱空节点吗?

1 个答案:

答案 0 :(得分:0)

查询返回所有节点,因为这是您要求的。您的Neo4jClient查询只是转换为此Cypher查询:

MATCH DataSpace
RETURN DataSpace

在这种情况下,DataSpace只是一个代表每个节点的标识符,没有其他约束。

您的DataSpace节点是否具有将它们与其他节点分开的任何内容,例如标签,他们所有连接的公共节点,一个独特的属性?

如果节点具有唯一的DataSpace标签,您可以使用以下方式查询它们:

var query = client
    .Cypher
    .Match("ds:DataSpace")
    .Return(ds => ds.As<DataSpace>());

如果DataSpaceName是仅存在于DataSpace节点上的属性,您可以尝试:

var query = client
    .Cypher
    .Match("ds")
    .Where("has(ds.DataSpaceName)")
    .Return(ds => ds.As<DataSpace>());