我使用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"},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}]
有返回的空节点,我认为这与图中的其他节点相关。
我可以摆脱空节点吗?
答案 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>());