当前位置: 首页 > 知识库问答 >
问题:

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

姜泰宁
2023-03-14

我将一些数据存储为neo4j节点。此节点具有一些关联的C#类未描述的属性,因此在neo4jclient查询返回时不会自动映射回该类。

例如,这个C类:

public class Node {
    public string name;
    public int number;
    public CustomClass data;
}

存储在neo4j中,然后使用以下neo4jclient fluent代码检索:

var query = client.Cypher
    .Match("(n:Node)")
    .Return(n => n.As<Node>())
    .Results;

将用名称和编号填充Node对象,但保留对CustomClass对象的空引用。

为了解决这个问题,我将CustomClass序列化为JSON字符串,并将其作为字符串属性存储在neo4j中。为了反序列化这个JSON类,我需要从存储在neo4j中的节点检索JSON字符串属性。

neo4jclient文档建议如下:

.Return(() => new {
    JSONString = Return.As<string>("matchedNode.JSONProperties")
})

但是这是无效的代码。JSONString=之后的 返回在该上下文中不存在。

见答案。

如何从数据库中获取JSONProperties字符串?


共有2个答案

商弘义
2023-03-14

除了添加

使用Neo4jClient。密码

您也可以选择只返回Node属性,如下所示:

var query = client.Cypher
    .Match("(n:Node)")
    .Return(n => n.As<Node>().name) //<-- returning just the property
    .Results;

秋飞鸾
2023-03-14

给定的代码完全按照预期工作,您只需要包含正确的neo4jclient引用。在这种情况下是这样的

using Neo4jClient.Cypher;

这样,返回不再是未定义的。如果您需要访问所有匹配的元素,这也是All类的位置。

 类似资料:
  • 我需要一个非常简单的例子,说明如何使用Neo4JClient将节点添加到索引中 在下面的C代码中,我创建了一个索引和一个员工节点。 问题: 在下面的代码中,如何将创建的节点添加到索引中?解决方案应允许搜索员工ID或姓名。

  • 我在Neo4jClient中的ID工作方式有问题。我想要我的。NET模型具有标识符属性,理想情况下,我希望只对该节点使用Neo4j自动增量id。 但是,无论我在模型类中使用何种情况(,,),它总是将其作为另一个字段添加到Neo4j中(在创建新节点时将其保持为0)。因此,当我在Neo4j浏览器中查看该节点时,它有一个

  • 我的java密码如下: 它可以在cypher控制台上工作,但不能在JDBC上工作。 我得到了这个错误: 密码:

  • 我创建了一个简单的SDN项目来从我的数据库中检索现有节点。在存储库中,我使用@query注释定义了一个自定义查询,类似于 @query(“match(emp:employee)WHERE emp.empname={0}return emp”) 公共雇员findByName(字符串empName); 不存在主SDN标签。(即以_开头的一个) 我在谷歌上搜索了这个问题,并尝试使用以下查询: 匹配(EM

  • 我有一个XML文件,我正试图解析它以获得名为的标记。 使用xpath和,我可以看到有10个子节点,每个节点都被命名为。但如果我使用以下任何一种XPath,就没有匹配项: 我所做的一切都不是返回任何标记。但是我知道有10个。我可以通过获得,所以我知道我正在连接到这个文件。我如何生成一个xpath来到达每个? XML结构(缩写):

  • 如何获取此html片段中a的href值? 我需要根据I标记中的类获取它 我试过了,但没有结果