我有一个Neo4j数据库graphDb
,其中节点有一个属性'label'
。我有一个Lucene索引'my_nodes'
,带有键'label',用于索引node属性'label'的值。现在,我想检索属性“label”等于可能值列表labellist
中的值的节点。为实现这一目标,我通过以下方式编写了Cypher查询:
cypherQ = """START n=node:my_nodes('"""
+' OR '.join(['label:'+str(i) for i in labellist]) + """')
RETURN n"""
result = graphDb.query(cypherQ)
工作正常,但我想知道是否有办法编写参数化查询无论如何?
我尝试过类似的事情:
cypherQ = """START n=node:my_nodes('label:{params}')
RETURN n"""
result = graphDb.query(cypherQ, params = labellist)
但这肯定不起作用,但如果labellist中有一个值可行。而neo4j教程在这个问题上没有提供太多资料。
我再次使用Neo4j的python绑定。
答案 0 :(得分:1)
该参数适用于索引的整个查询部分,因此这将是
cypherQ = """START n=node:my_nodes({queryParam})
RETURN n"""
并在客户端代码中构造查询,并将其作为一个参数传递给Cypher。