[英]How do I retrieve a specific neo4j node property using neo4jclient?
我有一些数据存储为neo4j节点。 该节点具有一些未由关联的C#类描述的属性,因此在neo4jclient查询返回时不会自动映射回该类。
例如,此C#类:
public class Node {
public string name;
public int number;
public CustomClass data;
}
存储在neo4j中,然后使用以下neo4jclient流利代码进行检索:
var query = client.Cypher
.Match("(n:Node)")
.Return(n => n.As<Node>())
.Results;
将使用名称和编号填充Node对象,但保留对CustomClass对象的空引用。
为了解决此问题,我将CustomClass序列化为JSON字符串,并将其存储为neo4j作为字符串属性。 为了反序列化此JSON类,我需要从neo4j中存储的Node中检索JSON字符串属性。
neo4jclient文档建议以下内容:
.Return(() => new {
JSONString = Return.As<string>("matchedNode.JSONProperties")
})
但是,这是无效的代码。 该上下文中不存在 JSONString =
之后的Return
。
请参阅答案。
如何从数据库中获取JSONPropeties字符串?
给定的代码完全按预期工作,您只需要包括正确的neo4jclient参考即可。 在这种情况下
using Neo4jClient.Cypher;
这样, Return
不再是未定义的。 如果需要访问所有匹配的元素,这也是All
类的位置。
除了您的答案,除了添加
using Neo4jClient.Cypher
您还可以选择仅返回Node
属性,如下所示:
var query = client.Cypher
.Match("(n:Node)")
.Return(n => n.As<Node>().name) //<-- returning just the property
.Results;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.