这个是网上找到唯一的.net平台的带参查询,有点不懂,请大佬指教
发布于 5 年前 作者 ws0906 1592 次浏览 来自 问答

如示例图所示,查询返回的结构是表格(行-列)式的,列值主要分为两种,要么是节点的属性列表,以JSON结构显示,要么是标量值。

驱动程序的Session返回查询的结果,Keys字段是Cypher语句中return子句投影的字段列表;Values字段返回是查询结果

public void MatchNodes(string lable, string name) { string query = string.Format(@“MATCH (n:{0} “, lable)+ @”{name: $name})-[r]->(m) RETURN n,id(n);”; using (var session = Driver.Session(AccessMode.Read)) { var result = session.ReadTransaction(rx => rx.Run(query, new { name })); //return 子句投影的字段列表 IReadOnlyList<string> keys = result.Keys; //查询返回的数据行 var rows = result.ToList(); foreach(var row in rows) { //每个数据行都包含多个数据列 var columns = row.Values; foreach (var column in columns) { //每个数据列,可能是一个节点,也可能是一个标量值 if(column.Key==“n”) { var node = column.Value as INode;

                long NodeID = node.Id;
                string NodeLables = string.Join(",", node.Labels.ToArray());
                foreach (var property in node.Properties)
                {
                    string Property=string.Format("Property[Key:{0},Value:{1}", property.Key, property.Value);
                }
            }
                    
            if(column.Key=="id(n)")
            {
                long NodeID=long.Parse(column.Value.ToString());
            }
        }
    }       
}

}628084-20170520132819228-1513700984.png

这里的string query = string.Format(@“MATCH (n:{0} “, lable)+ @”{name: $name})-[r]->(m) RETURN n,id(n);”; 不是很懂

3 回复

这是Cypher查询语句,label是Node的标签,name是Node的属性。 你的疑惑是什么?

我看见Java里面直接改cypher语句即可,在.net平台的话需要创建事例然后,里面传东西,不知道.net平台有没有那样简单的方法调用

你好。他并不像直白的cypher,如果要改成查关系的话麻烦可以指点一下怎么改嘛

回到顶部