我正在尝试使用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代码没有返回结果吗?
1条答案
按热度按时间deyfvvtc1#
好吧,原来这只是一个令人尴尬的打字错误。我正在使用的数据库文档标记为edge
GRANTED_ACCESS_TO
,但在实际的数据库中它是GRANTED_ACCESS
。一旦我做了这个更改,一切都按预期运行。我会让mods决定是否值得把这个问题作为代码示例贴出来。否则,请随意删除。