cypher.get_or_create_indexed_node(index =“ person”,key =“ name”,value =“ Fred”,properties = {“ level”:1}
但是,当我查询Fred检查他的属性时,他的级别=“ 1” /带引号/.似乎有些东西将他的值转换为字符串.这没什么大不了的-我可以根据需要在检索时将其转换-除了我尝试进行密码查询时…
开始b = node:person(“ *:*”)返回b.level,ID(b)的排序依据b.level desc跳过5限制5;
…我注意到b.level的订购不符合预期.我看到类似的东西:
==> +-------------------------+
==> | b.level | ID(b) |
==> +-------------------------+
==> | "3" | 42 |
==> | "0" | 53 |
==> | "2" | 57 |
==> | "0" | 63 |
==> | "2" | 20 |
==> +-------------------------+
当我期望像这样的时候:
==> +-------------------------+
==> | b.level | ID(b) |
==> +-------------------------+
==> | 3 | 42 |
==> | 2 | 20 |
==> | 2 | 57 |
==> | 0 | 63 |
==> | 0 | 53 |
==> +-------------------------+
我认为这是一个数据类型的问题,因为reference manual显示了跳过/限制功能.
解决方法:
事实并非如此,完全支持数字属性.我也无法使用以下测试来重新创建方案:
def test_get_or_create_indexed_node_with_int_property(self):
graph_db = neo4j.GraphDatabaseService()
fred = graph_db.get_or_create_indexed_node(index="person", key="name", value="Fred", properties={"level" : 1})
assert isinstance(fred, neo4j.Node)
assert fred["level"] == 1
graph_db.delete(fred)
我注意到您已在cypher的get_or_create_indexed_node方法前面添加了前缀-我不希望这样,因为cypher模块没有这种方法.相反,我希望它是诸如graph_db或批处理之类的东西.也许这是一个错字?
也许您可以共享更多周围的代码?它周围的其他内容可能会影响您的结果.
尼格
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。