给定一个包含 Neo4j 密码查询的字符串,如何在 python 中快速确定它是数据库读取还是数据库写入。
目前我想到了两种看待这个问题的方式——
- 检查关键字,
- 如创建,删除等以标记写入查询和
匹配、开始等来标记读取查询。 - 否则,我们可以根据此处的此链接检查模式 - Neo4j refcard 并相应地为其编写解析器。
方法 1 在此处失败 -
MATCH (n:Person {id:1, create:3}) return n
方法2对于看似很小的任务来说看起来太深了。
还有其他/更好的想法可以做同样的事情吗?
您可以使用
EXPLAIN
选项并检查执行计划operatorType
:
EXPLAIN MERGE (n:Person)
并查找并检查写入、更新和其他的可能值,类似的东西
"operatorType": "MergeCreateNode"
"operatorType": "CreateNode"
"operatorType": "MergeCreateRelationship"