neo4j cypher - 如何查找与节点列表有关系的所有节点

2023-11-24

我有名为“选项”的节点。 “用户”选择这些选项。我需要一个像这样工作的 chpher 查询:

检索选择了列表中给出的所有选项的用户。

MATCH (option:Option)<-[:CHOSE]-(user:User) WHERE  option.Key IN ['1','2','2'] Return user

此查询为我提供了选择选项(1)、选项(2)和选项(3)的用户,也为我提供了仅选择选项(2)的用户。

我需要的只是选择所有选项(1)、选项(2)和选项(3)的用户。


对于全密码解决方案(不知道它是否比克里斯的答案更好,你必须测试和比较)你可以收集option.Key对于每个用户并过滤掉那些没有option.Key对于列表中的每个值

MATCH (u:User)-[:CHOSE]->(opt:Option)
WITH u, collect(opt.Key) as optKeys
WHERE ALL (v IN {values} WHERE v IN optKeys)
RETURN u

或者匹配其键在列表中的所有选项以及选择它们的用户,收集每个用户的这些选项并将选项集合的大小与列表的大小进行比较(如果您不在列表中提供重复项,则用户具有相同大小的选项集合已选择所有选项)

MATCH (u:User)-[:CHOSE]->(opt:Option)
WHERE opt.Key IN {values}
WITH u, collect(opt) as opts
WHERE length(opts) = length({values}) // assuming {values} don't have duplicates
RETURN u

两者都应将结果限制为与所有选项(其键值在 {values} 中指定)连接的用户,并且您可以在不更改查询的情况下改变集合参数的长度。

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

neo4j cypher - 如何查找与节点列表有关系的所有节点 的相关文章

随机推荐

  • .NET 从 HTML 页面中删除/剥离 JavaScript 和 CSS 代码块

    我有带有 JavaScript 和 CSS 代码块的 HTML 字符串 如何剥离这些块 关于可用于删除这些的正则表达式有什么建议吗 快速的 n 脏方法将是一个像这样的正则表达式
  • 如何使用 Javascript 对 HTML 文档进行永久更改?

    我有一个简单的计数器代码 但所做的更改消失了 页面刷新后 为什么会发生这种情况 应该使用 PHP 来完成吗 如何更有效地编写这段代码 无论如何 这不是主要问题 var like document getElementById like im
  • 在另一个页面中获取magento会话变量

    我在 magento 模式页面的会话中设置数组变量 并希望在另一个页面 如 getuserdata php 中检索 但不进入另一个页面 我设置变量并进入一页 然后完全检索 我的代码就像 首页代码 session Mage getSingle
  • 我们有 Perl 中的 autochomp 吗?

    这就是我的 Perl 代码的样子监控 Unix 文件夹 usr bin perl use strict use warnings use File Spec Functions my date date chomp date my date
  • XCode 5 中的配置文件

    我今天开始使用 XCode 5 并在尝试归档一个项目以进行临时分发时发现 我看到的配置文件不包括我最近创建的配置文件 但确实包括我已删除的配置文件 我检查了我的管理器中该设备的配置文件列表 该列表没问题 并且包含我最近下载的配置文件 所以我
  • c#:将网页的html源代码读取为字符串[重复]

    这个问题在这里已经有答案了 我希望能够使用 winforms 将某个网页的 html 源读入 C 中的字符串 我该怎么做呢 string html new WebClient DownloadString http twitter com
  • ASP.NET 主题样式表渲染

    当呈现具有主题的页面时 给定主题中的样式表链接标记将呈现在结束头标记之前 有谁知道有什么方法可以改变这种情况吗 有没有办法让我可以将这些标签放置在起始头标签之后 我知道它可以通过jquery关闭 只需选择所有链接标签并将其放置在起始头标签之
  • 如何在groovy中合并两个地图

    问题 如何合并映射 同时求和映射之间公共键的值 Input a 10 b 2 c 3 b 3 c 2 d 5 Output a 10 b 5 c 5 d 5 扩展问题 如何通过对 2 个映射中的公共键的值应用函数 闭包 来合并原始的 2 个
  • 解组时未找到类:android.support.v7.widget.Toolbar$SavedState

    我正在使用 Maps API 创建一个简单的 Android 应用程序 但出现了一个我无法解决的奇怪错误 当我旋转设备时通常会发生这种情况 我正在使用谷歌服务8 4 0 4 23 15 39 47 503 9419 9419 com lic
  • 在 Ubuntu C++ 上找不到 gtk/gtk.h

    我对编程相当陌生 尤其是在涉及如何包含库和类似活动时 我过去曾使用 Python 进行过一些编程 并且一直使用 GTK 来创建窗口 这也是我在使用 C 编程时打算做的事情 首先 这是我的代码 include
  • VsTac 任务失败,使用全局 Cordova 工具集时找不到文件 appAsTgz.tgz

    当我使用全局安装的 Cordova 7 1 0 工具集并执行 iOS 远程构建 到模拟器或本地设备 时 我几乎立即收到错误消息 Error MSB4018 The VsTac task failed unexpectedly System
  • 积分推广与运营商+=

    我需要消除 gcc Wconversion 警告 例如 typedef unsigned short uint16 t uint16 t a 1 uint16 t b 2 b a gives warning conversion to ui
  • 使用 JQuery 禁用链接

    我有以下代码 其功能类似于 Stackoverflow 上评论链接的工作方式 单击时 它会触发 ActionResult 并填充 div function a id doneLink live click function event ma
  • Chrome:播放通过 fetch/XHR 下载的视频

    我想要实现的是让 Chrome 将视频文件作为数据加载 通过 Fetch API XHR 等 并使用
  • Sigaction 并将 Linux 代码移植到 Windows

    我正在尝试移植caffe 针对Linux开发 源代码到Windows环境 问题在于sigaction结构在signal handler cpp and signal handler h 源代码如下所示 我的疑问是可以替换哪个库或代码来实现此
  • JSON 解析错误:未终止的字符串

    在 JSON 解析函数中转义引号时 我遇到了一个常见问题 如果存在转义引号 在本例中为 test 则会导致以下错误 SyntaxError JSON 解析错误 未终止的字符串 var information JSON parse 1 24
  • 仅回形针处理图像

    我想对多种格式使用单个文件字段 据我了解 Paperclip 足够智能 只能缩放图像并保留其他格式 但这似乎不适用于 flv 它返回 imagemagick identify errors 有没有什么方法可以帮助 Paperclip 并明确
  • Youtube 获取上传的视频列表。文件未找到错误

    我正在尝试使用以下方法获取在我的 YouTube 频道上上传的视频列表 MY CHANNEL ID maxResults 50 key MY APP ID 我已经在 Google App Console 中创建了应用程序并为其生成了 APP
  • 使用 pytest 进行测试时,如何使用 >= 2 的工作人员干净地终止 Uvicorn + FastAPI 应用程序

    我有一个用 Uvicorn FastAPI 编写的应用程序 我正在使用 PyTest 测试响应时间 参考使用 PyTest 进行测试时如何在后台启动 Uvicorn FastAPI 我写了测试 然而 当工人 gt 2时 我在完成测试后发现应
  • neo4j cypher - 如何查找与节点列表有关系的所有节点

    我有名为 选项 的节点 用户 选择这些选项 我需要一个像这样工作的 chpher 查询 检索选择了列表中给出的所有选项的用户 MATCH option Option lt CHOSE user User WHERE option Key I