如果关系不存在则返回节点

2023-12-11

我正在尝试使用 cypher 创建一个查询,它将“查找”厨师可能拥有的缺失成分,我的图表设置如下:

(ingredient_value)-[:is_part_of]->(ingredient)

(ingredient)将有一个名称=“染料颜色”的键/值。(ingredient_value)可以有一个键/值 value="red" 并且“是”的一部分(ingredient, name="dye colors").

(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)

我正在使用此查询来获取所有ingredients,但不是配方所需的实际值,但我只想返回ingredients厨师没有的,而不是每个食谱所需的所有成分。我试过

(chef)-[:has_value]->(ingredient_value)<-[:requires_value]-(recipe)-[:requires_ingredient]->(ingredient)<-[:has_ingredient*0..0]-chef

但这什么也没返回。

这是可以通过 cypher/neo4j 完成的事情,还是最好通过返回所有成分并自己对它们进行分类来处理?

奖励:还有一种方法可以使用密码将厨师拥有的所有值与食谱所需的所有值相匹配。到目前为止,我只返回了由 a 返回的所有部分匹配项chef-[:has_value]->ingredient_value<-[:requires_value]-recipe并自己汇总结果。


2013 年 1 月 10 日更新:

在 Neo4j 中遇到了这个2.0参考:

尽量不要使用可选关系。 首先,

不要像这样使用它们:

MATCH a-[r?:LOVES]->() WHERE r IS NULL您只需确保它们不存在即可。

相反,这样做:

MATCH (a) WHERE NOT (a)-[:LOVES]->()

使用 cypher 检查关系是否不存在:

...
MATCH source-[r?:someType]-target
WHERE r is null
RETURN source

这 ?标记使关系可选。

OR

在 neo4j 2 中执行以下操作:

...
OPTIONAL MATCH source-[r:someType]-target
WHERE r is null
RETURN source

现在您可以检查不存在(空)的关系。

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

如果关系不存在则返回节点 的相关文章

  • 在巨大的数据集上创建独特的节点和关系 NEO4J

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

    我刚刚开始使用 neo4j 并且了解图形和关系的原理 但是我在想要建模的某些结构方面遇到了一些麻烦 我想在编程语言项目中使用它 并存储已解析源文件的 AST 从那里 我计划向节点添加大量额外的数据和关系 以帮助分析和工具 但基本的 AST
  • 带子图聚合的递归查询(任意深度)

    我问了一个问题earlier https stackoverflow com questions 28036055 recursive query with sub graph aggreagation关于沿着图表聚合数量 提供的两个答案效
  • 有没有办法从密码结果中删除 _id _type

    我使用 apoc convert toTree 过程将查询结果转换为树 然后过滤结果以仅获取几个属性 但是 在生成的有效负载中 我得到了两个无法删除的属性 id 和 type 这是我的查询 我应该只获取 prefLabel 和 uri MA
  • 如何禁用 Spring Data Neo4j 的登录

    我从 spring neo4j 收到不需要的查询日志 如下所示 25 08 2018 23 47 07 597 restartedMain INFO o n o d bolt request BoltRequest executeReque
  • 使用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
  • org.neo4j.kernel.GraphDatabaseQueryService 无依赖满足接口

    我只是编写一个简单的程序 将 GTFS 文件上传到 Neo4j Spatial 我相信这是一些配置错误或 Neo4j spatial 库的一些问题 这就是为什么我没有上传我的代码 这是指定的非常基本的代码here https github
  • 是否有工具可以将 Neo4j 图转储为 Cypher 并从 Cypher 重新加载它?

    每个熟悉 MySQL 的人都可能使用过 mysqldump 命令 它可以生成代表 MySQL 数据库中的架构和数据的 SQL 语句文件 这些 SQL 文本文件通常用于多种用途 备份 播种副本 在安装之间复制数据库 将产品数据库复制到临时环境
  • 无法将 neo4j shell 连接到本地服务器

    我已经通过自制程序安装了 neo4j 2 0 0 并启动了服务器 我可以通过端口 7474 访问 webadmin 控制台 但是当我运行时neo4j shell host localhost port 7474 I get non JRMP
  • Neo4J 2.1.3 唯一性约束被违反,这是一个错误吗?

    我们有一个 Neo4J 2 1 3 数据库 并且有一个创建的唯一性约束 如下所示 在 段 SEGMENT 断言上创建约束 segmentId 是唯一的 当我们从浏览器测试这一点时 它可以很好地检测违规行为 例如 CREATE n SEGME
  • 如何将map或json对象存储为neo4j中的属性?

    我正在尝试将地图或 json 对象存储为 Neo4j 中的属性 但它不起作用 这是目前节点属性的限制 您有几种解决方法可供选择 您可以将 json 对象转换为字符串并将其保存为属性 您可以使用APOC程序 https neo4j com l
  • 使用 spring-data-neo4j 时如何启用 neo4j webadmin?

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

    我想以 JSON 文件导出 Neo4j 图形数据库 This is a Export JSON button in Neo4j web UI version as shown in attached image below 但是 Neo4j
  • Neo4j 服务器无法使用非托管扩展启动

    我正在尝试在 neo4j 服务器 版本 CE 2 3 2 上使用非托管扩展 所以我正在尝试一个简单的你好世界的例子 http neo4j com docs stable server unmanaged extensions htmlNeo
  • MongoDB + Neo4J vs OrientDB vs ArangoDB [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我目前正处于 MMO 浏览器游戏的设计阶段 游戏将包括一些实时位置的图块地图 因此每个单元格的图块数据 和通用世界地图 我更喜欢使用 Mongo
  • Neo4j Cypher:在用另一个节点替换节点之前传输所有关系

    我试图在删除第一个节点之前将所有传入和传出关系从一个节点转移到另一个节点 他们都有相同的标签 我看到了这个Neo4j Cypher 复制关系并删除节点 https stackoverflow com questions 21634936 n
  • 如何仅匹配两个节点之间的一种关系

    我正在使用 neo4j 图形数据库 它在 Ruby on Rails 中使用 例如 我汤姆和杰瑞之间有3个关系 他们合作盖了3栋房子 现在我只想匹配3个中的1个 如何编写查询代码 我已经尝试过 这是我的代码 Neo4j Session qu
  • neo4j合并2个或多个重复节点

    我使用 cypher 手动输入 Neo4j 数据库 因此很容易出现创建重复节点等错误 重复的节点将与其他节点具有各自的关系 是否有内置函数可以合并这些节点 或者我应该手动完成 听起来可能 但密码脚本很复杂 获取每个重复节点的关系 使用正确的
  • neo4j cypher更新现有节点或创建新节点

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

随机推荐