连接到 Neo4j

Neo4j 语言指南

Neo4j 提供了**Python、JavaScript、Java、.NET 和 Go 的官方库**。

我们的社区贡献者为所有主要编程语言的所有协议和 API 提供了驱动程序。在本节中,我们为几种语言和 Neo4j 驱动程序提供了介绍和一致的示例应用程序。

您应该熟悉图数据库概念和属性图模型。您应该已创建了 Neo4j AuraDB 云实例,或在本地安装了 Neo4j

通过 GraphAcademy 学习

我们提供了一系列Neo4j 开发者课程,这些课程将教会您如何使用我们每个官方支持的驱动程序来构建连接到 Neo4j 的应用程序。

Building Neo4j Applications with Java Building Neo4j Applications with Node.js Building Neo4j Applications with Python Building Neo4j Applications with .NET Building Neo4j Applications with Go

如何连接到 Neo4j?

如果您已创建AuraDB 实例,或安装并在系统上启动了 Neo4j 作为服务器,则您已经可以通过内置的 Neo4j 浏览器与数据库进行交互式操作,您可以在 AuraDB 控制台中找到它,或者如果您在本地运行,则可以在localhost:7474上找到它。

要构建应用程序,您希望从您的技术栈连接到 Neo4j,使用通过 Bolt 或 HTTP 连接到 Neo4j 的驱动程序。

二进制 Bolt 协议

从 Neo4j v3.0 开始,我们支持一种称为Bolt的二进制协议。它基于 PackStream 序列化,并支持 Cypher® 类型系统、协议版本控制、身份验证和通过证书进行的 TLS。对于 Neo4j 集群,Bolt 提供了具有负载平衡和故障转移功能的智能客户端路由。

Neo4j 默认启用二进制协议,因此您可以使用任何支持它的语言驱动程序。

有关协议实现的更多详细信息,请参阅实现者文档

Neo4j 驱动程序

Neo4j 为多种流行的编程语言提供了官方驱动程序。您可以在下面找到指向其参考文档的链接

始终使用最新版本的驱动程序,因为它始终可以与之前的 Neo4j 长期支持版本以及当前和下一个主要版本一起使用。最新的 5.x 驱动程序支持连接到任何 Neo4j 5 和 4.4 实例,并且也将与 Neo4j 6 兼容。

为了演示在不同的编程语言中连接和使用 Neo4j,创建了一个示例应用程序。它是一个简单的单页 Web 应用程序,它使用 Neo4j 的电影演示数据库(电影、演员、导演)作为数据集。所有应用程序中的相同前端网页都使用由不同编程语言和驱动程序实现的后端提供的三个 REST 端点

  • 按标题搜索电影

  • 单个电影列表

  • 领域模型的图形可视化

语言示例的源代码在GitHub上作为单独的存储库提供,可以克隆并用作起点。

查询 API

查询 API 允许您通过 HTTP/HTTPS 查询 Neo4j 服务器。

有关更多信息,请参阅文档 → 查询 API

示例请求

POST http://localhost:7474/db/neo4j/query/v2
Authorization: Basic bmVvNGo6dmVyeXNlY3JldA==
Content-Type: application/json
{
  "statement": "MERGE (n:Person {name: $name, age: $age}) RETURN n AS alice",
  "parameters": {
    "name": "Alice",
    "age": 42
  }
}

示例响应

202: Accepted
Content-Type: application/json
{
  "data": {
    "fields": [
      "alice"
    ],
    "values": [
      {
        "elementId": "4:ff04df25-ff2b-4b55-98f8-6888297b025e:0",
        "labels": [
          "Person"
        ],
        "properties": {
          "name": "Alice",
          "age": 42
        }
      }
    ]
  },
  "bookmarks": [
    "FB:kcwQ/wTfJf8rS1WY+GiIKXsCXgmQ"
  ]
}

HTTP API

HTTP API 允许您通过 HTTP/HTTPS 查询 Neo4j 服务器。

有关更多信息,请参阅文档 → HTTP API

示例请求

POST http://localhost:7474/db/neo4j/tx/commit
Accept: application/json;charset=UTF-8
Content-Type: application/json
Authorization: Basic bmVvNGo6dmVyeXNlY3JldA==
{
  "statements": [
    {
      "statement": "MERGE (n:Person {name: $name, age: $age}) RETURN n",
      "parameters": {
        "name": "Alice",
        "age": 42
      }
    }
  ]
}

示例响应

200: OK
Content-Type: application/json;charset=utf-8
{
  "results": [ {
    "columns": ["n"],
    "data": [ {
      "row": [ {
        "name": "Alice",
        "age": 42
      } ],
      "meta": [ {
        "id": 36,
        "elementId": "4:0ea4a108-32c5-498c-99e7-95cc67ab5f7d:36",
        "type": "node",
        "deleted": false
      } ]
    } ]
  } ],
  "errors": [],
  "lastBookmarks": [
    "FB:kcwQDqShCDLFSYyZ55XMZ6tffRuQ"
  ]
}

通过 GraphAcademy 学习

通过来自Neo4j GraphAcademy的免费动手课程,学习构建 Neo4j 应用程序所需的一切知识。