// npm install --save neo4j-driver // node example.js const neo4j = require("neo4j-driver"); const driver = neo4j.driver("bolt://<HOST>:<BOLTPORT>", neo4j.auth.basic("<USERNAME>", "<PASSWORD>"), { /* encrypted: 'ENCRYPTION_OFF' */ }); const query = ` MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]-> (:Category {categoryName:$category}) RETURN p.productName as product `; const params = { category: "Dairy Products" }; const session = driver.session({ database: "neo4j" }); session .run(query, params) .then((result) => { result.records.forEach((record) => { console.log(record.get("product")); }); session.close(); driver.close(); }) .catch((error) => { console.error(error); });
# pip3 install neo4j-driver # python3 example.py from neo4j import GraphDatabase, basic_auth driver = GraphDatabase.driver( "bolt://<HOST>:<BOLTPORT>", auth=basic_auth("<USERNAME>", "<PASSWORD>")) cypher_query = ''' MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]-> (:Category {categoryName:$category}) RETURN p.productName as product ''' with driver.session(database="neo4j") as session: results = session.read_transaction( lambda tx: tx.run(cypher_query, category="Dairy Products").data()) for record in results: print(record['product']) driver.close()
// go mod init main // go run example.go package main import ( "fmt" "github.com/neo4j/neo4j-go-driver/neo4j" //Go 1.8 ) func main() { s, err := runQuery("bolt://<HOST>:<BOLTPORT>", "<USERNAME>", "<PASSWORD>") if err != nil { panic(err) } fmt.Println(s) } func runQuery(uri, username, password string) ([]string, error) { configForNeo4j4 := func(conf *neo4j.Config) { conf.Encrypted = false } driver, err := neo4j.NewDriver(uri, neo4j.BasicAuth(username, password, ""), configForNeo4j4) if err != nil { return nil, err } defer driver.Close() sessionConfig := neo4j.SessionConfig{AccessMode: neo4j.AccessModeRead, DatabaseName: "neo4j"} session, err := driver.NewSession(sessionConfig) if err != nil { return nil, err } defer session.Close() results, err := session.ReadTransaction(func(transaction neo4j.Transaction) (interface{}, error) { result, err := transaction.Run( ` MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]-> (:Category {categoryName:$category}) RETURN p.productName as product `, map[string]interface{}{ "category": "Dairy Products", }) if err != nil { return nil, err } var arr []string for result.Next() { value, found := result.Record().Get("product") if found { arr = append(arr, value.(string)) } } if err = result.Err(); err != nil { return nil, err } return arr, nil }) if err != nil { return nil, err } return results.([]string), err }
// install dotnet core on your system // dotnet new console -o . // dotnet add package Neo4j.Driver // paste in this code into Program.cs // dotnet run using System; using System.Collections.Generic; using System.Text; using System.Threading.Tasks; using Neo4j.Driver; namespace dotnet { class Example { static async Task Main() { var driver = GraphDatabase.Driver("bolt://<HOST>:<BOLTPORT>", AuthTokens.Basic("<USERNAME>", "<PASSWORD>")); var cypherQuery = @" MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]-> (:Category {categoryName:$category}) RETURN p.productName as product "; var session = driver.AsyncSession(o => o.WithDatabase("neo4j")); var result = await session.ReadTransactionAsync(async tx => { var r = await tx.RunAsync(cypherQuery, new { category="Dairy Products"}); return await r.ToListAsync(); }); await session?.CloseAsync(); foreach (var row in result) Console.WriteLine(row["product"].As<string>()); } } }
// Add your the driver dependency to your pom.xml build.gradle etc. // Java Driver Dependency: http://search.maven.org/#artifactdetails|org.neo4j.driver|neo4j-java-driver|4.0.1|jar // Reactive Streams http://search.maven.org/#artifactdetails|org.reactivestreams|reactive-streams|1.0.3|jar // download jars into current directory // java -cp "*" Example.java import org.neo4j.driver.*; import static org.neo4j.driver.Values.parameters; public class Example { public static void main(String...args) { Driver driver = GraphDatabase.driver("bolt://<HOST>:<BOLTPORT>", AuthTokens.basic("<USERNAME>","<PASSWORD>")); try (Session session = driver.session(SessionConfig.forDatabase("neo4j"))) { String cypherQuery = "MATCH (p:Product)-[:PART_OF]->(:Category)-[:PARENT*0..]->" + "(:Category {categoryName:$category})" + "RETURN p.productName as product"; var result = session.readTransaction( tx -> tx.run(cypherQuery, parameters("category","Dairy Products")) .list()); for (Record record : result) { System.out.println(record.get("product").asString()); } } driver.close(); } }
Neo4j 支持 GraphQL 和 Node.js、Python、Go、Java 和 .Net 的驱动程序。由于社区的支持,我们还拥有 PHP、Ruby、R、Erlang 和 Clojure 的驱动程序。
连接到任何地方运行的 Neo4j 数据库,无论是本地、自托管,还是作为使用 Neo4j AuraDB™ 的完全托管云服务。
探索您的数据库并构建完美的 Cypher 查询。
无论您是初学者还是经验丰富的 Neo4j 用户,浏览器都是一个面向开发人员的工具,它是编写 Cypher 查询和探索 Neo4j 图数据库内容的最佳场所。Neo4j 浏览器随所有 Neo4j 图数据库产品一起提供,包括 Neo4j Server(社区版和企业版)和 Neo4j 桌面(所有操作系统版本)。
对于初学者,内置的指南可以帮助您学习 Neo4j 的基础知识,并开始编写 Cypher。
对于初学者和专家,强大的代码自动完成辅助可以帮助您编写查询,以便您可以专注于手头的任务。
根据您的需要以图和表格形式提供结果。熟悉的“读取-评估-打印”结构可以帮助您细化查询并提高效率。
快速将您的数据加载到 Neo4j 中。
Neo4j 数据导入工具简化了将数据导入 Neo4j 图数据库的过程。只需导入您的平面文件数据,勾勒出节点和关系以在图数据模型中表示您的数据,然后开始加载。 详细了解数据导入工具,并立即在 Neo4j AuraDB 免费版 上开始使用。