neo4j如何处理两个匹配

2023-12-31

我有两个疑问。

第一个查询是

match (user)-[r:CreatesChat]-(chatitems)

第二个查询是

match (chatitems)-[r:PartOf]-(teamschat)-[s:OwnedBy]-()

我想返回第一个查询的前 3 个用户

并返回第二个查询中的前 3 支球队

目标是检查第一个查询的用户是否拥有第二个查询的团队

我的 neo4j 查询是

match (user)-[r:CreatesChat]-(chatitems)
with user.id as uid,chatitems.id as chatid
order by uid desc
with collect([uid])[..3] as users,collect([chatid])[..3] as chats
UNWIND users AS idusers
match (chatitems)-[r:PartOf]-(teamschat)-[s:OwnedBy]-()
return idusers

该查询返回

在 1360 毫秒内返回 133239 行,显示前 1000 行

但我执行查询

match (user)-[r:CreatesChat]-(chatitems)
with user.id as uid,chatitems.id as chatid
order by uid desc
with collect([uid])[..3] as users,collect([chatid])[..3] as chats
UNWIND users AS idusers
return idusers

返回的idusers是对的

在 539 毫秒内返回 3 行。

我如何关联这两个查询?


我认为您想要收集前 3 位用户和前 3 位团队,然后对每个集合进行放松。像这样的事情:

MATCH (user:User)-[:CreatesChat]->(chatitems:Chat)
WITH user ORDER BY user.id DESC LIMIT 3
WITH collect(user) AS users
MATCH (chatitems:Item)-[:PartOf]->(teamsChat:Team)-[:OwnedBy]-()
WITH users, teamsChat ORDER BY teamsChat.id DESC LIMIT 3
WITH users, collect(teamsChat) AS teams
UNWIND users AS user
UNWIND teams AS team
MATCH p=(chatitems:Item)-[:PartOf]-(team)-[:OwndedBy]-(user)
RETURN p
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

neo4j如何处理两个匹配 的相关文章

  • 同时运行 Gremlin-Server 和 NEO4J Server

    目前看来我们不能同时运行两者Neo4J服务器 and Gremlin服务器同时 有什么办法可以同时运行两者吗 NEO4J 正在运行 我尝试启动 Gremlin Server 然后出现以下错误 java lang RuntimeExcepti
  • Cypher:从集合中提取唯一值

    I have MATCH x rels gt y RETURN extract r in rels r property as collected where collected是路径上所有关系的属性的集合 例如 null 4 null 4
  • 更快的 %in% 运算符

    The 快速匹配 https cran r project org web packages fastmatch index html包实现了更快的版本match对于重复匹配 例如在循环中 set seed 1 library fastma
  • 在 VBA Excel 中查找、剪切和插入行以匹配借项和贷项值

    我在 Sheet1 中有以下设置数据 并从第 4 行 A 列开始 其中标题位于第 3 行 No Date Code Name Remarks D e b i t Cr e d i t 1 4 30 2015 004 AB 01 04 15
  • with 子句做什么?新4j

    I don t understand what WITH clause do in Neo4j I read the The Neo4j Manual v2 2 2 http neo4j com docs stable query with
  • spring-data-neo4j 基本一对多关系不持久

    EDIT 示例项目可在github https github com troig neo4jCustomRepository 我在后端项目中使用 Neo4J Rest 图形数据库 托管在 grapheneDb 中 和 Spring Data
  • Neo4j:基于聚合函数过滤节点

    假设我有一个客户节点列表和每个客户下的订单列表 表示为与这些客户节点关联的订单节点 每个订单都有一个与其关联的成本数字属性 我想返回那些平均订单大于阈值的客户 这是一些无法运行的代码 说明了我想要的内容 MATCH n0 Customer
  • 使用 cypher 和 apoc 将数百万个节点添加到 neo4j 空间层

    我有一个包含 380 万个节点的数据集 我正在尝试将所有这些加载到 Neo4j 空间中 节点将进入一个简单的点层 因此具有所需的纬度和经度字段 我试过了 MATCH d pointnode WITH collect d as pn CALL
  • Cypher Linked List:如何按索引取消移位和替换

    我正在尝试按照此处的推荐使用 Neo Cypher 创建链表结构 创建时CYPHER存储相同标签的节点关系顺序 https stackoverflow com questions 33263822 cypher store order of
  • 如何检索多个深度关系的节点 Neo4j Database Cypher?

    假设有一个简单的图如下 City name gotham lt LOCATED Tower name abc lt LOCATED Bank name CityBank City name gotham lt LOCATED Cinema
  • neo4j - 三个节点之间的关系

    我完全陌生Neo4j这些天我正在测试它 我遇到的一个问题是如何正确实现涉及 3 个不同节点的关系Spring Data 例如 假设我有 3 NodeEntitys User Tag and TaggableObject 正如你可以争论的那样
  • Cypher Neo4j 无法加载外部资源

    在 Windows 环境中 我尝试加载带有以下语句的 csv 文件 LOAD CSV WITH HEADERS FROM file E Neo4j customers csv AS row 它似乎无法正常工作并返回 无法加载外部资源 文件
  • 无法将 neo4j shell 连接到本地服务器

    我已经通过自制程序安装了 neo4j 2 0 0 并启动了服务器 我可以通过端口 7474 访问 webadmin 控制台 但是当我运行时neo4j shell host localhost port 7474 I get non JRMP
  • 在 AT&T x86 程序集中查找转义字符

    问题一 我有以下汇编代码 其目的是循环输入字符串 并计算它遇到的转义字符 的数量 globl sprinter data escape string string num escape long 0 num characters long
  • 使用 spring-data-neo4j 时如何启用 neo4j webadmin?

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

    如何使用 Cypher 查询向现有节点添加标签 这在参考文档中 请参阅http docs neo4j org chunked stable query set html set set a label on a node http docs
  • 构造映射不允许索引集合作为映射键?

    所以我正在尝试写一个答案这个问题 https stackoverflow com questions 29262918 cypher zip collections这对我来说似乎很有趣 什么鬼 我来试试 这是我想出的解决方案 对我来说这似乎
  • Java:正则表达式,其中每个字符出现0-1次

    Problem 匹配正则表达式的每个字符最多出现一次的单词 该单词必须具有一定的大小 例如 2 5 单词中必须有一个特定的字符 比方说字符 e 我有什么 word matches abcde 2 5 这将匹配字符 a b c d 和 e 出
  • 正则表达式接受 4 条规则中的 3 条

    我似乎无法让正则表达式正确满足以下要求 长度在 8 到 20 之间的字符串 必须包含至少 1 个大写字母字符 至少 1 个小写字母字符 以及至少 1 个数字或至少 1 个特殊字符字符 或两者 假设特殊字符仅限于包括 我最初是这样写的 A Z
  • neo4j cypher更新现有节点或创建新节点

    我有一个包含大约 900 万个节点和 1200 万个关系的图 对于图中的每个节点 每个节点都有一个属性子集 这些属性通过标签形成节点的唯一标识 该图正在通过各种数据源进行更新 这些数据源会增加图中的现有节点 或者在节点不存在时创建新节点 我

随机推荐