我有以下Neo4j图形结果。
我正在使用多关系-[RELATED_TO*]-命令来获取该信息。
Match(n:Comment)
MATCH(n)-[RELATED_TO*]-(d:Comment)
return n, d;
Run Code Online (Sandbox Code Playgroud)
我想在列表中显示结果,我可以说该答案来自该答案,或者在JSON级联文件中。达到此目标的最佳方法是什么?
我正在尝试or在查询中使用命名关系。我认为查询应类似于:
MATCH (A:person)-[B (:ACTED_IN|:DIRECTED)]->(C:person) RETURN A, B, C
但是无论我如何放入括号中,我都会出错。我想a UNION可以解决问题,但希望有一些类似于上述的方法。TIA。
编辑:这做了我想要的,但似乎不是做到这一点的方法。
MATCH (A:person)-[B]->(C:person) WHERE type(B)="ACTED_IN" OR type(B)="DIRECTED" RETURN A,B,C
我一直试图连接到neo4j,进行身份验证并创建具有各种属性的节点。neoj在http:// localhost:7474 /中正常工作。我在下面用mypassword替换了我的实际密码(我很确定它不是密码问题,因为我已经通过cmd提示连接到neo4j了)
import py2neo
from py2neo import authenticate,Graph, Node
def creatNodeWithLabelProperties():
print("Start - Creating Node with Label and Properties")
# Authenticate the user using py2neo.authentication
py2neo.authenticate("localhost:7474", "neo4j", "mypassword")
# Connect to Graph and get the instance of Graph
graph = Graph("http://localhost:7474/db/data/")
node1 = Node("FirstLabel", name="MyPythonNode1", neo4j_version="2.2")
node2 = Node("FirstLabel", "SecondLabel",name="MyPythonNode2", neo4j_version="2.2")
resultNodes = graph.create(node1, node2)
for index in range(len(resultNodes)):
print("Created Node - ", index, ", ", resultNodes[index])
print("End - Creating Node with Label and Properties")
def createNodeWithLabelPropertiesWithCast(): …Run Code Online (Sandbox Code Playgroud) 我刚刚了解了图数据库,而不是关系数据库(RDBMS)。我浏览了neo4j网站上的一些资源,并阅读了Oreilly关于图形数据库的书中的某些章节。但是我无法理解图形数据库实际上是如何存储其数据的?
如果必须将图形存储在RDBMS中,则将为顶点和节点创建差异列表。图数据库有何不同?我真的很难想象,例如neo4j如何将其数据(节点和顶点)存储和链接到常规RDBMS。
如果有人可以帮助我理解和可视化图形数据库的内部工作原理,那么我将非常感激。如果您不太了解我的问题,我很乐意更具体地解释它。
我有一个Users带有属性的标签userid。所以我想获取所有具有字符串类型的节点userid。可能吗?
喜欢:
MATCH (n:Users) where n.userid IS string RETURN n
Run Code Online (Sandbox Code Playgroud) 我导入了一个.grass文件来播放样式,打破了一些东西,并决定我很快恢复到默认的Neo4j浏览器样式.
如何卸载我安装的.grass文件?
gremlin是否提供了克隆顶点的功能,例如
v1->v2, v1->v3, v1->v4,我如何简单高效地创建一个新的顶点v5,该顶点的边缘也指向v2, v3, v4该v1's边缘(边缘指向的位置相同),而不必显式设置它们,而是说类似的东西g.createV(v1).clone(v2)。
请注意,我使用的是gremlin的AWS Neptune版本,解决方案必须与此兼容。
这似乎是一个有线的问题 - 也许是.
例:
我有用户,国家和角色.用户在一个或多个国家/地区担任一个或多个角色.
Sebastian -> Germany -> TaskVerifier
-> QuestionApprover
-> Austria -> TaskVerifier
-> Worker
-> Whatever
Run Code Online (Sandbox Code Playgroud)
各种角色有不同的权限......
我该如何建模呢?(例如在neo4j中)
使用country属性设置用户和角色之间的关系似乎不是解决方案,因为我还需要其他关系中的国家/地区节点.
THX提前!
我想从路径中删除一个节点,而不会危及原始路径节点.
这是我的测试数据库:
我想从路径中删除node(2),但我希望节点1,3,4和5在路径中保持链接.
有没有办法在一个查询中执行此操作?到目前为止,我有以下内容:
MATCH p = (:Connect)-[:to*]-(:Connect)
WITH nodes(p) AS connectNodes
UNWIND connectNodes AS connectNode
WITH distinct connectNode
WHERE connectNode.connectID = 2
DETACH DELETE (connectNode)
Run Code Online (Sandbox Code Playgroud)
这将删除节点2并取消链接路径
如何在没有节点2的情况下维护原始路径的节点之间的链接?
编辑:
我通过修改接受的答案的答案来解决它
//Make sure node (n) belongs to the path
MATCH (n:Connect {cID:2})-[:to*]-(:Connect {cID:5})
//get attached nodes, if any, ignoring directions
OPTIONAL MATCH (oa:connect)-[:to]-(n)-[:to]-(ob:connect)
//make sure nothing is duplicated
WHERE oa.cID <> ob.cID
//Use FOREACH to mimic if/else. Only merge oa to ob if they exist. Query fails without it
FOREACH …Run Code Online (Sandbox Code Playgroud) 我有这个理论图结构:
(:Car)<-[:LIKES_C]-(:Person)-[:LIKES_B]->(:Bike)
Run Code Online (Sandbox Code Playgroud)
Person也有其他不包含单词LIKES的关系,例如(:Person)-[:LOVES]-(:Person)
我想编写一个密码查询,该查询将产生连接到Person具有关系的所有节点,其名称以LIKES开头。
此外,我不能关系的名字更改为LIKES因为有很多节点与标签Bike,并Car根据这个帖子的Neo4j会像查询效率低下:
MATCH (p:Person)-[:LIKES]->(:Car)
Run Code Online (Sandbox Code Playgroud)
它将通过同时进行搜索Cars,并Bikes和随后过滤器Cars有效地提高执行时间。
有没有一种有效的方式来查询LIKES*关系?