Neo4j:对特定数据库进行查询?

Neo4j: Do queries on specific database?

我是 Neo4j 的新手,想实现一个使用它的服务。

我已经阅读了文档并进行了搜索,但是我仍然没有得到这个简单问题的答案:

如何在 Neo4j 查询中指定要查询的数据库

例如我连接到 bolt://localhost:7687,那里有三个数据库:system、neo4j 和 mydb。 neo4j 数据库是标准的。

当我打开 Neo4j 浏览器并执行诸如 MATCH (n) RETURN n 的查询时,它会自动假定我要查询名为 neo4j 的标准数据库。但是,我想查询另一个,mydb。 当我查询上述查询时,我的输出是

{
  "query": {
    "text": "match (n) return n",
    "parameters": {}
  },
  "queryType": "r",
  "counters": {
    "_stats": {
      "nodesCreated": 0,
      "nodesDeleted": 0,
      "relationshipsCreated": 0,
      "relationshipsDeleted": 0,
      "propertiesSet": 0,
      "labelsAdded": 0,
      "labelsRemoved": 0,
      "indexesAdded": 0,
      "indexesRemoved": 0,
      "constraintsAdded": 0,
      "constraintsRemoved": 0
    },
    "_systemUpdates": 0
  },
  "updateStatistics": {
    "_stats": {
      "nodesCreated": 0,
      "nodesDeleted": 0,
      "relationshipsCreated": 0,
      "relationshipsDeleted": 0,
      "propertiesSet": 0,
      "labelsAdded": 0,
      "labelsRemoved": 0,
      "indexesAdded": 0,
      "indexesRemoved": 0,
      "constraintsAdded": 0,
      "constraintsRemoved": 0
    },
    "_systemUpdates": 0
  },
  "plan": false,
  "profile": false,
  "notifications": [],
  "server": {
    "address": "localhost:7687",
    "version": "Neo4j/4.4.5",
    "agent": "Neo4j/4.4.5",
    "protocolVersion": 4.4
  },
  "resultConsumedAfter": {
    "low": 2,
    "high": 0
  },
  "resultAvailableAfter": {
    "low": 8,
    "high": 0
  },
  "database": {
    "name": "neo4j"
  }
}

最后的JSON值是查询在数据库neo4j.

上执行的证明

我必须向我的查询添加什么才能查询同一 DBMS 中的另一个数据库?

您可以使用以下选项change/specify 数据库。

  1. 从 Neo4j 浏览器,您可以 select sidebar 中的数据库。

  2. 在 Cypher 语法中,use 命令允许您选择不同的数据库。 :use mydb.

  3. 如果通过Application驱动连接到Neo4j,可以在创建session对象时指定数据库。
    例如,如果您使用 Python driver:

from neo4j import GraphDatabase
driver = GraphDatabase.driver(uri, auth=(user, password))
session = driver.session(database="mydb")
  1. 通过修改config_dbms.default_database value in the the neo4j.conf file.
  2. 以system-wide方式指定默认数据库