使用neo4j客户端在动态查询中返回多值

2023-12-05

按照我问的问题:使用 neo4j 客户端构建动态查询

我得到了关于如何仅使用字符串动态返回值的答案。

当我尝试使用语法从失败的查询中返回多个值时,
我尝试了以下查询:

var resQuery2 = WebApiConfig.GraphClient.Cypher
            .Match("(movie:Movie {title:{title}})")
            .OptionalMatch("(movie)<-[r]-(person:Person)")
            .WithParam("title", title)
            .Return(() => Return.As<string>("movie, collect([person.name, head(split(lower(type(r)), '_')), r.roles])"));

我收到以下错误:

解串器以单列模式运行,但响应 包括指示投影的多列。如果 使用流畅的 Cypher 接口,使用 Return 的重载 采用 lambda 或对象而不是单个字符串。 (过载与 单个字符串用于标识,而不是原始查询文本:我们无法映射 如果您只提供原始查询文本,则列会退出。)

是否可以仅使用字符串返回多个节点?


我们无法获得像您之前提出的问题那样的输出 - 这是因为您正在要求一个节点(movie)和字符串集合(collect)并且它们没有共同的属性,甚至没有共同的属性样式。

首先,让我们看看执行此操作的痛苦方法:

var q = gc.Cypher
    .Match("(movie:Movie)")
    .OptionalMatch("(movie)<-[r]-(person:Person)")
    .Return(() => Return.As<string>("{movie:movie, roles:collect([person.name, head(split(lower(type(r)), '_')), r.roles])}"));

var results = q.Results;

这里我们取查询项(movie, r, person)并用它们创建一个类型{}围绕结果,并将其转换为string.

这会给你一个可怕的字符串Node周围的数据movie然后是角色的集合:

foreach (var m in results)
{
    //This is going to be painful to navigate/use
    dynamic d = JsonConvert.DeserializeObject<dynamic>(m);
    Console.WriteLine(d.movie);
    Console.WriteLine(d.roles);
}

你最好做这样的事情:

var q = gc.Cypher
    .Match("(movie:Movie)")
    .OptionalMatch("(movie)<-[r]-(person:Person)")
    .Return(() => new
    {
        Movie = Return.As<Node<string>>("movie"),
        Roles = Return.As<IEnumerable<string>>("collect([person.name, head(split(lower(type(r)), '_')), r.roles])")
    });

    var res = q.Results;

你可以JsonConvert.DeserializeObject<dynamic>()电影节点,在您有空的时候,或者编写一个强类型类。

就“动态”对象而言,我不知道您想如何与collectreturn 语句的一部分,如果这没有帮助,您可能需要更新问题以显示使用预期。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用neo4j客户端在动态查询中返回多值 的相关文章

  • 对于以双向关系连接的节点,cypher 返回两次

    我有 2 个节点 A B 通过 FRIEND 连接 当我运行以下命令时 start n node match n r FRIEND b return n name b name 它返回 2 行 A B 和 B A 我想知道如何让它只返回一条
  • neo4j:单向/双向关系?

    所以我研究了 neo4j 我可能会在即将到来的项目中使用它 因为它的数据模型可能非常适合我的项目 我查看了文档 但我仍然需要这个问题的答案 我可以将关系设置为单向吗 看来 Neo4j 的人很喜欢电影 所以我们继续吧 如果我有这样的图表 Ac
  • SET 查询中“在此上下文中无效使用聚合函数”(Neo4j)

    我想知道为什么这被认为是 Neo4j 的 Cypher 中聚合函数的无效使用 MATCH p Project EMPLOYS n Person SET p youngest MIN n age 虽然以下被认为是有效的用例 MATCH p P
  • 使用 py2neo 在 neo4j 上查询写入性能

    目前 我正在努力寻找一种高性能的方法 使用 py2neo 运行多个查询 我的问题是 python 中有一大堆需要写入 neo4j 的写入查询 我现在尝试了多种方法来解决这个问题 对我来说最好的工作方法如下 from py2neo impor
  • 使用 Neo4J 和 Spring Data 按 ID 创建关系

    我定义了一个简单的节点对象 如下所示 Node product public class Product Id private String sku Relationship type SOLD BY private Set
  • 如何删除neo4j中的所有索引?

    我想使用 cypher 批量删除所有存在的索引 可以吗 我正在使用 neo4j 3 4 7 DROP INDEX ON Label attributename 如果我在稍后阶段创建相同的索引 它会替换现有索引吗 删除所有索引和约束的快速方法
  • spring data neo4j 5 - 没有名为“sessionFactory”的bean可用

    我正在使用 spring data neo4j 5 0 7 RELEASE 和 spring 5 0 6 RELEASE 使用文档中的配置https github com spring projects spring data neo4j
  • Neo4j 2.0 唯一约束错误“节点已存在”,当它不存在时

    我在 Neo4j 唯一约束方面遇到了一些麻烦 其中 CREATE cypher 语句由于节点已经存在而无法执行 问题是 它不 存在 此外 昨天使用这些确切数据的精确流程也有效 我的neo4j版本是ubuntu 12 04 3上的commun
  • 在巨大的数据集上创建独特的节点和关系 NEO4J

    我的问题与这个非常相似 如何通过neo4j中导入的csv文件创建独特的节点和关系 https stackoverflow com questions 25090255 how to create unique nodes and relat
  • 如何使用 nosql 构建成就和徽章

    我目前有一个使用 mongodb 作为数据库的社交游戏应用程序 我的问题是 如果我想创建一个积分和徽章系统 有哪些建议 成就 徽章的业务逻辑可能会变得非常复杂并且非常临时 因此实时授予徽章似乎效率不高 我想象将跟踪的操作添加到队列中的某处
  • 带子图聚合的递归查询(任意深度)

    我问了一个问题earlier https stackoverflow com questions 28036055 recursive query with sub graph aggreagation关于沿着图表聚合数量 提供的两个答案效
  • Neo4j 在 Cypher 查询运行中仅使用一个核心

    当我在 UI 中运行 Cypher 查询时 服务器中只有一个核心正在运行 查询会卡住或响应非常慢 我使用 Neo4j 3 0 7 社区 有人知道我可以使用所有核心进行哪些调整吗 单个 Cypher 查询仅限于单个线程 看到这个tweet h
  • 如何返回每个另一个节点属性的最大计数

    我需要计算一位作曲家的音乐作品每十年被演奏了多少次 然后只返回每十年演奏次数最多的一首作品 除了过滤除每十年最高计数之外的所有内容之外 该密码可以执行所有操作 match c Composer CREATED BY w Work lt 2
  • 使用java将数据从Neo4j导出到csv

    将数据从 Neo4j 导出到 CSV 的最佳方法是什么 我已使用链接中的 CSV 导入器将数据从 csv 导入到 neo4jhttps github com sroycode neo4j import https github com sr
  • 启用远程访问neo4j 4.2社区版

    由于在家工作 我需要一种方法来监视远程 neo4j 实例 最好通过 Web 浏览器实例 在过去 例如在3 0中 它可以通过以下方式轻松实现修改单个配置行 https neo4j com developer kb how do i enabl
  • 如何使用 spring-data-neo4j 配置 neo4j EmbeddedGraphDatabase (现已弃用)?

    我正在使用 spring data neo4j 3 1 1 Release 和 neo4j 2 1 2 我设法制作了一个运行良好的 spring 配置 但它使用了 org neo4j kernel EmbeddedGraphDatabase
  • 如何转储 neo4j 图形数据库?

    我将所有数据库存储在一个位置C JATIN DATA 数据库 neo4jDatabases 如何使用 neo4j Desktop 单独转储所有数据库 我已经尝试过 neo4j admin dump database to 这个命令但出现错误
  • SET label : 将标签名称作为参数传递

    我有一个这样的查询 将 data 展开为行 MERGE p Book guid row bookGuid set p name row name p Science 我想传递标签 科学 作为参数 因为该标签对于我在 data 中传递的所有行
  • Cypher Neo4j 无法加载外部资源

    在 Windows 环境中 我尝试加载带有以下语句的 csv 文件 LOAD CSV WITH HEADERS FROM file E Neo4j customers csv AS row 它似乎无法正常工作并返回 无法加载外部资源 文件
  • 使用 spring-data-neo4j 时如何启用 neo4j webadmin?

    我正在启动一个新项目使用 REST 访问 Neo4j 数据 http spring io guides gs accessing neo4j data rest 例子 该示例使用嵌入式数据库而不是独立的 neo4j 服务器 但我想使用 Ne

随机推荐

  • 如何在颤振中没有上下文的情况下导航?

    我最终使用了静态函数 但我需要进行导航 它给了我一个错误 没有找到上下文的吸气剂 所以我寻找解决方案并找到了 GET 包 但当我尝试使用它时 它给了我另一个错误 E flutter 6078 ERROR flutter lib ui ui
  • Angular 8:在子组件中选择浏览器后退按钮时恢复滚动位置

    我有一个由许多卡片列表组成的组件 如网格格式 向下滚动并选择其中一张卡片后 我希望在按下浏览器后退按钮时返回到相同的滚动位置 我无法使用 Router 的 rollPositionRestoration 方法 因为它位于我的子组件中 感谢你
  • 如何计算球体上一点到线段的距离?

    我在地球上有一条线段 大圆部分 线段由其端点的坐标定义 显然 两个点定义了两条线段 所以假设我对较短的一条线段感兴趣 我得到了第三个点 我正在寻找线和点之间的 最短 距离 所有坐标均以经度 纬度 WGS 84 给出 我如何计算距离 任何合理
  • Python Hadoop 流错误“ERROR Streaming.StreamJob:作业未成功!”和堆栈跟踪:ExitCodeException exitCode=134

    我正在尝试使用 Hadoop Streaming 在 Hadoop 集群上运行 python 脚本进行情感分析 我在本地计算机上运行的相同脚本运行正常并给出输出 要在本地计算机上运行 我使用此命令 cat home MB analytics
  • 如何在 Objective-C / Cocoa Touch 中进行模运算?

    我有两个 CGFloat 值 想要计算模结果 或者换句话说 我想知道如果将 valueA 尽可能多地放入 valueB 中 还剩下什么 所以我只是尝试 CGFloat moduloResult valueB valueA 编译器抱怨 并告诉
  • 使用 MongoDB 返回每个组中具有最大值的文档

    给定一个数据集 id 0 type banana amount 5 id 1 type banana amount 3 id 2 type apple amount 8 id 3 type apple amount 2 仅获取相同记录的最有
  • SparkML 交叉验证仅适用于“标签”列吗?

    当我运行交叉验证时example使用列中具有标签的数据集not名为 label 我在 Spark 3 1 1 上观察到 IllegalArgumentException 为什么 下面的代码已被修改为将 label 列重命名为 target
  • 来自 GitHub 的 DigitalOcean 上的简单 Node.js 应用程序部署

    我的 Github 上有一个 node js 应用程序 现在我使用 Heroku 来托管它 但我想尝试一下 DigitialOcean 每月 5 美元更实惠 我习惯使用 Heroku 我只需创建一个应用程序 gt 将其连接到我的 githu
  • 二次幂纹理的效率有多高?

    我正在使用 Ffmpeg 创建一个 OpenGL 视频播放器 并且我所有的视频都不是 2 的幂 因为它们是正常的视频分辨率 它在我的 nvidia 卡上以良好的 fps 运行 但我发现它无法在较旧的 ATI 卡上运行 因为它们不支持非二次幂
  • Jekyll 中的 Liquid for 循环可以包含页面变量吗?

    假设我有一堆 data我用来创建特定页面列表的文件 具有这些列表的所有页面都有一个自定义的 Front Matter 变量pageName 的价值pageName恰好匹配 data文件与列表 我不想将 html 代码块粘贴到每个页面中 而是
  • Ant zip 任务默认排除哪些文件?

    我正在运行 Ant zip 任务来压缩 Unix 系统上目录的全部内容
  • 和 做什么?

    我正在读一本关于 html 开发的书 我对这本书还很陌生 尽管这本书在一个月前 2011 年 11 月 才第一次出版 但作者是一位经验丰富的编码员 可能使用 因为形式中的动作是老派的吗 因为我试图了解示例代码的要点 但找不到解释form a
  • 单缓冲区;多个插座; Linux 下的单个系统调用

    Linux 是否有任何本机内核工具可以将提供的缓冲区发送 到一组套接字 一种向量 I O 除了套接字句柄而不是缓冲区 目标是减少在某些情况下涉及的 u k 转换的数量 例如 您需要向 n 个客户端广播一些状态更新 这需要迭代每个套接字并发送
  • 从字符串中提取最大数字

    我正在尝试使用 Excel 中的函数从字符串中提取所有数字 第二次 我想提取字符串中包含的最大值 我的字符串看起来像 ATCG 12 5 TTA 2 5 TGC 60 28 期望的输出 60 28 第一次 我尝试用我的函数提取所有数字 但它
  • 突出显示行中特定单元格的值与前一行的值不同的单元格

    我想应用一些条件格式 将一行的每个单元格与前一行的单元格进行比较 如果不同 则该行会突出显示 我使用的是 Excel 2007 这可能吗 如果是这样 有人可以向我提供将其应用于整个数据表的步骤吗 对的 这是可能的 这在以前版本的 Excel
  • 我无法理解这段使用递归产生排列的代码

    def permute2 seq if not seq Shuffle any sequence generator yield seq Empty sequence else for i in range len seq rest seq
  • PHP £ 符号前有奇怪的字符?

    由于某种原因我得到了 76756687 当我在表单上的文本字段中输入 时出现奇怪的字符 正如您所怀疑的 这是一个字符编码问题 页面是否设置为使用 UTF 8 字符集 这种编码确实不会出错 此外 您可能希望在退出时对英镑符号进行实体编码 po
  • Gerrit 中缺少依赖项

    我对 Gerrit 进行了四处更改 每处都取决于之前的更改 当然 第一个除外 我已经放弃了第二和第三并回顾了第一和第四 由于first 不依赖于任何东西 Gerrit 设法自动合并它 现在 第四个 取决于废弃的第三个 是一个真正的问题 格里
  • Bootstrap 下拉菜单出现在其他元素后面 - IE7

    我正在使用 Bootstrap 2 3 1http twitter github io bootstrap index html 所以我使用他们的 下拉菜单 类来创建一些简单的快速使用下拉菜单 但由于某种原因IE7它们出现在我网站上的文本和
  • 使用neo4j客户端在动态查询中返回多值

    按照我问的问题 使用 neo4j 客户端构建动态查询 我得到了关于如何仅使用字符串动态返回值的答案 当我尝试使用语法从失败的查询中返回多个值时 我尝试了以下查询 var resQuery2 WebApiConfig GraphClient