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

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

何博涛
2023-03-14

我试图使用cypher创建一个查询,该查询将“查找”厨师可能有的缺失食材,我的图是这样设置的:

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

共有1个答案

公冶同
2023-03-14

更新01/10/2013:

在Neo4J2.0参考中遇到了这个问题:

尽量不要使用可选关系。最重要的是,

MATCH a WHERE NOT (a)-[:LOVES]->()
...
MATCH source-[r?:someType]-target
WHERE r is null
RETURN source

在Neo4J2中:

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

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

 类似资料:
  • 嗨,我是新来的拉威尔,在理解如何建立人际关系方面有点挣扎。我试图在laravel中创建一个基本的restful api,有3个模型 表迁移: 书籍是主要的表格,作者与书籍有一对多的关系。类别与书籍有多对多的关系,因为一本书可以在多个类别中。 books表有一个author_id字段将其链接到author表。还有一个名为category_books的透视表,它包含category_id和book_i

  • 问题内容: 我在node.js中编写一个函数来查询PostgreSQL表。 如果该行存在,我想从该行返回id列。 如果不存在,我想将其插入并返回ID()。 我一直在尝试和语句的变体,但似乎无法使其正常工作。 问题答案: 我建议在数据库端进行检查,然后将ID返回给nodejs。 例子: 而不是在Node.js端(在此示例中,我使用的是node-postgres):

  • 我们使用6个月的历史流量数据生成48小时的预测数据。最终的投影数据被加载到Neo4J中,以支持前端网络应用程序,用户可以在其中搜索服务器,并查看其与组织内其他服务器的未来通信/数据传输。我们定义了一个主机节点和关系1到48小时(1H,2H,3H......48H)。下面的常规密码查询工作正常,并返回带有关系信息的数据。 但是,SDN(Spring数据Neo4j)设置没有返回关系信息。节点实体定义如

  • 问题内容: 在一个SQL语句中,我尝试插入一行,如果由于约束而失败,则返回现有行。 我有: 该列具有唯一约束。我尝试在末尾追加,但这仍然不返回现有行。 为什么是这样?我以为我的最后一条语句将被执行并返回。有任何想法吗? 注意:由于某些复杂的竞争条件,我无法使用Postgres函数或多个SQL语句。 问题答案: WITH d(t, e) AS ( VALUES (‘abcdefg’, ‘2014-0

  • 问题内容: 如何检查表中是否存在特定元素-如何返回true或false? 我有一张table user_id User_password user_secretQ 从字面上讲,我想这样做:如果该列中存在某个特定项,则返回true;否则返回false。 问题答案: Oracle SQL中没有布尔类型。您将需要返回1或0,或类似的值并采取相应措施:

  • return Order::where('user_id', $id)->with(['user' => function ($query) {