我在使用py 2neo find和find_one(http://py2neo.org/2.0/essentials.html)时遇到一些问题
我想在Cypher中实现的是:
MATCH (p:Person) WHERE p.name='Alice' AND p.age=22 RETURN p
比如,有多个键/值集(例如,如果图中有多个“Alice”)。
我的问题是,我不知道该给予graph.find_one什么,一个工作代码是:
graph.find_one('Person', 'name', 'Alice')
我想要的是这样的东西(这是行不通的!):
graph.find_one('Person', {'name': 'Alice', 'age': 22})
一个可能的(不好的)解决方案是创建一个graph.find,然后循环遍历results属性并查找年龄,但我不喜欢这个解决方案。
**额外好处:**有没有可能用graph.find来做一些像年龄〉25的事情?
编辑:新“解决方案”
如果p.name。
>>> tx = graph.cypher.begin()
>>> tx.append(find_person, {'N': 'Alice', 'A': 22})
>>> res = tx.process()
>>> print(res[0][0][0])
(n423:Person {age:22,name:"Lisa"})
我不喜欢的是我错过了Note对象,(我不完全理解RecordListList,以及如何导航它)
3条答案
按热度按时间u0sqgete1#
如果您查看源代码,您会发现
find
和find_one
不支持这种类型的查询。guicsvcw2#
基于@elyase的答案和原始的py2neo.Graph.find,我做了这段代码.请随时评论和改进..:-)
使用find_dict_one:
将find_dict与元组一起使用:
使用不带元组的find_dict:
vhipe2zx3#
可以使用节点匹配器