问题标签 [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.
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
也跳过两行。无论合并如何,我如何确保它们被执行?
编辑: 原始查询有一些错别字。
neo4j - 将变量值持久化到密码查询的其他部分
我的查询出现问题,其中 FOREACH 子句中定义的变量不可用于后续的 MERGE。在下面的代码片段中,我在创建节点之前检查了每个字段的值是否存在。在某些情况下,这些字段可能会丢失,因此我不想为它们创建节点。然后在最后一个 FOREACH 中,假设对这些节点的引用存储在变量中,我尝试创建它们的关系。
然而实际发生的是,当我可视化我的图表时,我看到定义为孤立节点的有效节点以及在一些“幻像”节点之间创建的关系。所以我的问题是,我是否有办法将对有效节点的引用传递给创建关系的 MERGE。
neo4j - 创建一个节点并将其分配给 Cypher Neo4j 中表的列的总和
我试图弄清楚如何在 Cypher 中实现 OLAP 操作汇总。我一直在寻找如何创建节点,然后将其分配给 Cypher 中表的列的总和。更具体地说,我正在尝试实现此结果: 代码结果 [EDITED] 使用此代码,我获得了如图所示的结果:
关系:Supplier-[:SUPPLIES]->(Product) 产品属性:unitsInStock、productName、productId、unitsInOrder、supplierID
问题是这段代码不能正常工作,因为它不仅生成一个节点,而且生成多个节点,而且我得到的结果只有在我播放两次查询时才能获得。
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 说:
函数“收集”的参数太多
提前致谢。
neo4j - 如何列出可以从 cypher-shell 中导入的文件?
如何运行常见的终端命令(或等效命令),例如ls
从 Cypher-shell 中列出可导入文件?
database - 如何根据大量名称在 neo4j 数据库中查找节点
所以我使用 neo4j 数据库,我想在这个数据库中找到某些人。人们被存储为节点,并且与其他节点具有某些属性和关系。现在我有一个我想找到的人的列表(xlsm/csv 文件)。此列表包含大约 8000 个名称以及我可以用于查询的其他属性。
我设法通过使用列表中的各个名称来搜索节点,例如:
我也知道我可以查看某个属性是否出现在字符串列表中:
但是,我无法通过手动输入列表中的数千个名称来创建查询。那么按我想找到的人过滤的最有效方法是什么?
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"
更新
neo4j - 如何使用普通密码查询创建和更新节点和属性?
如何使用普通密码查询创建和更新节点和属性?
以下是我的查询:
在第一次运行时,节点被创建为“发烧”。在第二次运行中,我已将 special_group 更新为“普通感冒”。但它正在用“发烧”创建新节点。我无法将“发烧”更新为“普通感冒”。我应该对上述查询进行哪些更改?
neo4j - Cypher:查询以检查节点是否是前 10 个结果的一部分
我正在尝试进行以下操作的密码查询
- 查找美国最大的 10 家组织(按收入计算)
- 如果组织在前 10 名中,则返回“True”,如果不是,则返回“False”
我试图提取前 10 名组织列表的代码如下所示:
但是如果一家公司进入前 10 名,不确定如何返回 True 或 False
neo4j - 结合两个密码查询
目前这是存储在数据库中的数据
我正在尝试结合这两个查询:
我需要这样显示结果: