标签: neo4j

Cypher-将图形结果转换为列表或JSON

我有以下Neo4j图形结果。

Neo4j图结果
我正在使用多关系-[RELATED_TO*]-命令来获取该信息。

Match(n:Comment)
MATCH(n)-[RELATED_TO*]-(d:Comment)
return n, d;
Run Code Online (Sandbox Code Playgroud)

我想在列表中显示结果,我可以说该答案来自该答案,或者在JSON级联文件中。达到此目标的最佳方法是什么?

json neo4j cypher py2neo

1
推荐指数
1
解决办法
767
查看次数

Neo4j Cypher查询-与“或”的关系

我正在尝试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

relationship neo4j cypher

1
推荐指数
1
解决办法
208
查看次数

py2neo连接错误(身份验证错误)

我一直试图连接到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)

python neo4j py2neo

1
推荐指数
1
解决办法
1689
查看次数

数据如何存储在图形数据库中?

我刚刚了解了图数据库,而不是关系数据库(RDBMS)。我浏览了neo4j网站上的一些资源,并阅读了Oreilly关于图形数据库的书中的某些章节。但是我无法理解图形数据库实际上是如何存储其数据的?

如果必须将图形存储在RDBMS中,则将为顶点和节点创建差异列表。图数据库有何不同?我真的很难想象,例如neo4j如何将其数据(节点和顶点)存储和链接到常规RDBMS。

如果有人可以帮助我理解和可视化图形数据库的内部工作原理,那么我将非常感激。如果您不太了解我的问题,我很乐意更具体地解释它。

database graph neo4j graph-databases cypher

1
推荐指数
1
解决办法
2099
查看次数

如何在Neo4j中查找具有字符串类型属性的节点?

我有一个Users带有属性的标签userid。所以我想获取所有具有字符串类型的节点userid。可能吗?

喜欢:

MATCH (n:Users) where n.userid IS string RETURN n
Run Code Online (Sandbox Code Playgroud)

neo4j cypher

1
推荐指数
1
解决办法
677
查看次数

重置Neo4j浏览器样式

我导入了一个.grass文件来播放样式,打破了一些东西,并决定我很快恢复到默认的Neo4j浏览器样式.

如何卸载我安装的.grass文件?

macos desktop-application neo4j grass-file

1
推荐指数
1
解决办法
330
查看次数

gremlin克隆节点及其边缘

gremlin是否提供了克隆顶点的功能,例如 v1->v2, v1->v3, v1->v4,我如何简单高效地创建一个新的顶点v5,该顶点的边缘也指向v2, v3, v4v1's边缘(边缘指向的位置相同),而不必显式设置它们,而是说类似的东西g.createV(v1).clone(v2)

请注意,我使用的是gremlin的AWS Neptune版本,解决方案必须与此兼容。

neo4j graph-databases gremlin amazon-neptune

1
推荐指数
1
解决办法
719
查看次数

如何在图数据库中建立关系模型?

这似乎是一个有线的问题 - 也许是.

例:

我有用户,国家和角色.用户在一个或多个国家/地区担任一个或多个角色.

Sebastian -> Germany -> TaskVerifier
                     -> QuestionApprover
          -> Austria -> TaskVerifier
                     -> Worker
                     -> Whatever
Run Code Online (Sandbox Code Playgroud)

各种角色有不同的权限......

我该如何建模呢?(例如在neo4j中)

使用country属性设置用户和角色之间的关系似乎不是解决方案,因为我还需要其他关系中的国家/地区节点.

THX提前!

neo4j

1
推荐指数
1
解决办法
30
查看次数

Neo4j-Cypher:从路径中删除节点并维护到路径的所有节点的链接

我想从路径中删除一个节点,而不会危及原始路径节点.

这是我的测试数据库:

测试DB

我想从路径中删除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)

path neo4j graph-databases cypher

1
推荐指数
1
解决办法
217
查看次数

如何在密码的关系名称中使用通配符

我有这个理论图结构:

(: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*关系?

neo4j cypher

1
推荐指数
1
解决办法
213
查看次数