我正在尝试批量合并来创建多个节点。使用下面的代码,
def test_batches(tx,user_batch):
result= tx.run(f"Unwind {user_batch} as user\
MERGE (n:User {{id: user.id, name: user.name, username: user.username }})")
但是我得到了这个错误。注意我传递了一个字典列表。
CypherSyntaxError: {code: Neo.ClientError.Statement.SyntaxError} {message: Invalid input '[': expected "+" or "-" (line 1, column 8 (offset: 7))
"Unwind [{'id': 1596859520977969156, 'name': 'Bigspuds', 'username': 'bigspuds777'}, {'id': 1596860505662144513, 'name': 'JOHN VIEIRA', 'username': 'JOHNVIE67080352'}, {'id': 1596860610905448449, 'name': 'biru nkumat', 'username': 'NkumatB'}, {'id': 1513497734711738374, 'name': 'elfiranda Hakim', 'username': 'Kidonk182'}, {'id': 1596836234860859392, 'name': 'Ecat Miao', 'username': 'sylvanasMa'}] as user MERGE (n:User {id: user.id, name: user.name, username: user.username })"
^}
我不知道为什么会发生这种情况,任何帮助都非常感谢。
2条答案
按热度按时间gt0wga4j1#
下面是一个使用UNWIND来创建字典列表的代码。请注意,我们建议将值作为参数传递,而不是在查询中处理值字符串。
样品结果:
wpcxdonn2#
您可能需要调整Cypher查询的语法以符合Neo4j Cypher查询语言规范。例如,MERGE子句应使用ON CREATE和ON MATCH语法来指定节点是否已存在时应执行的操作。
下面是如何重写Cypher查询以使用ON CREATE和ON MATCH语法的示例: