我在窗户上工作。我使用记事本创建了 Cypher 查询的文本文件。如何使用 Neo4jShell 或 Neo4j Web 界面控制台在文件中运行查询。
6 回答
在 Debian/Ubuntu 或任何*nix安装上,从终端使用以下命令:
$neo4j-shell -c < path-to-cypher-query-file.cql
请注意,文件中的每个密码查询都必须以分号结尾,并且必须用空行与其他查询隔开。此外,.cql
结尾(文件格式)不是强制性的。
只需在启动控制台时添加-file
为参数。
在 Windows 上,它看起来像这样:
Neo4jShell.bat -file path/to/cql/file
或者您也可以将结果打印到新文件中
Neo4jShell.bat -file path/to/cql/file > path/to/output/file
我也确信有一种方法可以在 shell 中而不是在启动时做到这一点,正如 Stefan Armbruster 曾经向我展示过的那样,但看在上帝的份上,我不记得他是如何做到的。但这种方法也有效。
$ neo4j-shell -file query.cql
或使用cypher-shell
$ cat query.cql | cypher-shell
自从提出这个问题以来,neo4jShell.bat 文件已被删除。执行密码文件的新方法是使用名为LazyWebCypher的 Web 应用程序。
使用 Neo4j Web 界面,我只需进行复制和粘贴。
在控制台上,我有时会使用 curl 与 Neo4j 的 REST 接口对话。这允许我使用我在我的应用程序中拥有的相同查询(引用单独的参数)。为此,您必须将文件中的查询包装到 json 对象中。
数据.json:
{
"query":"match (u:User) where u.username={username} return u",
"params":{"username":"trenkerbe"}
}
命令:
curl -i -X POST -H "Content-Type: application/json" -d @data.json http://localhost:7474/db/data/cypher
./bin/neo4j-shell -path ../data/databases/ -c < commands.cql
在 Neo4j 3.2.1 上