繁体   English   中英

如何使用neo4jclient检索特定的neo4j节点属性?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM