neo4j 使用py2neo OGM进行图形查询

4smxwvx5  于 2022-11-05  发布在  其他
关注(0)|答案(1)|浏览(178)

我正在尝试使用py2neo定义的类在我的数据库上运行图形查询。

py2neo.ogm import Graph, GraphObject, Property, RelatedTo, Label

gsb = Graph(address = "localhost:11004", password='<my_password>')

class Dataset(GraphObject):

    __primarykey__ = 'title'

    title = Property()

    Dataset = Label()

class User(GraphObject):

    __primarykey__ = 'user_id'

    user_id = Property()
    dept = Property()
    email = Property()
    name = Property()
    eigenvector = property()

    grantedAccess = RelatedTo("Dataset", "GRANTED_ACCESS_TO")

test_user = User.match(gsb, 'test_user').first()

for ds in test_user.grantedAccess:
    print(ds.title)

我希望得到的是一个'test_user'已经被授权访问的数据集列表。

MATCH (a:User)-[r:GRANTED_ACCESS_TO]->(b:Dataset) 
WHERE a.user_id = 'test_user'
RETURN b.title

但是当我运行python代码时,我什么也没得到,甚至没有错误消息,只是没有结果。我知道数据库连接工作正常,我知道数据库中有与查询匹配的关系模式。我假设我的查询不知何故写错了?
有人能解释一下为什么我的python代码没有返回结果吗?

deyfvvtc

deyfvvtc1#

好吧,原来这只是一个令人尴尬的打字错误。我正在使用的数据库文档标记为edge GRANTED_ACCESS_TO,但在实际的数据库中它是GRANTED_ACCESS。一旦我做了这个更改,一切都按预期运行。
我会让mods决定是否值得把这个问题作为代码示例贴出来。否则,请随意删除。

相关问题