问题标签 [cypher-3.1]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
103 浏览

neo4j - Neo4j Cypher - 匹配条件写入

我有一个包含用户(u:User {id: 1})、用户状态(us:UserStatus {status: 'pending'})以及它们之间关系的数据库(u)-[hs:HAS_STATUS {from: 1541030400, to: 4102444800}]->(us)

用户状态可以是"pending","active""suspended". 并且2100-01-01是将来的某个日期,这意味着用户仍然具有此状态。

我正在尝试运行一个查询,该查询通过创建与新状态的新关系来更新用户的状态,并通过将to属性设置为当前日期来归档旧关系。

这是我尝试过的:

如果用户已经具有满足WHERE子句的状态,则将其归档并创建新的状态关系。但是,如果用户还没有状态,SET则跳过子句(如预期的那样),但MERGE也跳过两行。无论合并如何,我如何确保它们被执行?

编辑: 原始查询有一些错别字。

0 投票
1 回答
410 浏览

neo4j - 将变量值持久化到密码查询的其他部分

我的查询出现问题,其中 FOREACH 子句中定义的变量不可用于后续的 MERGE。在下面的代码片段中,我在创建节点之前检查了每个字段的值是否存在。在某些情况下,这些字段可能会丢失,因此我不想为它们创建节点。然后在最后一个 FOREACH 中,假设对这些节点的引用存储在变量中,我尝试创建它们的关系。

然而实际发生的是,当我可视化我的图表时,我看到定义为孤立节点的有效节点以及在一些“幻像”节点之间创建的关系。所以我的问题是,我是否有办法将对有效节点的引用传递给创建关系的 MERGE。

0 投票
1 回答
209 浏览

neo4j - 创建一个节点并将其分配给 Cypher Neo4j 中表的列的总和

我试图弄清楚如何在 Cypher 中实现 OLAP 操作汇总。我一直在寻找如何创建节点,然后将其分配给 Cypher 中表的列的总和。更具体地说,我正在尝试实现此结果: 代码结果 [EDITED] 使用此代码,我获得了如图所示的结果:

关系:Supplier-[:SUPPLIES]->(Product) 产品属性:unitsInStock、productName、productId、unitsInOrder、supplierID

问题是这段代码不能正常工作,因为它不仅生成一个节点,而且生成多个节点,而且我得到的结果只有在我播放两次查询时才能获得。

0 投票
1 回答
20 浏览

join - 在 Neo4j 3.2.15 和 cypher-3.1 中以单个返回值连接来自 2 个节点的密钥

我正在尝试获取“朋友推荐”查询。节点具有下一个序列 (Node) - [FRIEND] - (Node) - [INFO] - (P_info) ,其中每个节点都与INFO关联的节点有关系P_info。我可以获得一个节点的推荐朋友列表,但我需要将这些P_info键包含到推荐的朋友键中才能一起返回。

这是我目前的查询:

但是“info”的信息在响应时没有与“potentialFriend”相关联。我想做这样的事情: return {user:person,collect(potentialFriend,information)}但我不知道这是否可能,cypher 说:

函数“收集”的参数太多

提前致谢。

0 投票
1 回答
70 浏览

neo4j - 如何列出可以从 cypher-shell 中导入的文件?

如何运行常见的终端命令(或等效命令),例如ls从 Cypher-shell 中列出可导入文件?

0 投票
1 回答
161 浏览

database - 如何根据大量名称在 neo4j 数据库中查找节点

所以我使用 neo4j 数据库,我想在这个数据库中找到某些人。人们被存储为节点,并且与其他节点具有某些属性和关系。现在我有一个我想找到的人的列表(xlsm/csv 文件)。此列表包含大约 8000 个名称以及我可以用于查询的其他属性。

我设法通过使用列表中的各个名称来搜索节点,例如:

我也知道我可以查看某个属性是否出现在字符串列表中:

但是,我无法通过手动输入列表中的数千个名称来创建查询。那么按我想找到的人过滤的最有效方法是什么?

0 投票
1 回答
226 浏览

neo4j - 使用neo4j中的模式获取所有节点及其关系路径的最新方法是什么

我在 neo4j 中执行以下查询,它返回所有节点及其关系路径

询问

结果

虽然此查询执行正确并给了我预期的结果,但我在 neo4j 浏览器中收到以下警告

不推荐将关系绑定到可变长度模式的列表。(将可变长度关系模式绑定到变量 ('r') 已弃用,并且在未来版本中将不受支持。推荐的方法是将整个路径绑定到变量,然后提取关系: MATCH p = (.. .)-[...]-(...) WITH *, 关系(p) AS r)

只是为了升级我的查询,我尝试了各种方法,但没有任何帮助。寻求这方面的帮助。

这是我按照帮助中的建议尝试过的匹配组合

结果

不支持具有相同名称的多个结果列(第 1 行,第 60 列(偏移量:59)) "MATCH p1 = (p:MyNode {name : "Vivek"})-[r*1..2]-(f :MyNode) WITH *, 关系(p1) AS r 返回 p1"

更新

在此处输入图像描述

0 投票
2 回答
98 浏览

neo4j - 如何使用普通密码查询创建和更新节点和属性?

如何使用普通密码查询创建和更新节点和属性?

以下是我的查询:

在第一次运行时,节点被创建为“发烧”。在第二次运行中,我已将 special_group 更新为“普通感冒”。但它正在用“发烧”创建新节点。我无法将“发烧”更新为“普通感冒”。我应该对上述查询进行哪些更改?

0 投票
1 回答
38 浏览

neo4j - Cypher:查询以检查节点是否是前 10 个结果的一部分

我正在尝试进行以下操作的密码查询

  1. 查找美国最大的 10 家组织(按收入计算)
  2. 如果组织在前 10 名中,则返回“True”,如果不是,则返回“False”

我试图提取前 10 名组织列表的代码如下所示:

但是如果一家公司进入前 10 名,不确定如何返回 True 或 False

0 投票
1 回答
25 浏览

neo4j - 结合两个密码查询

目前这是存储在数据库中的数据

我正在尝试结合这两个查询:

我需要这样显示结果: