本文已使用 Google Cloud Translation API 自动翻译。
某些文档最好以原文阅读。
近年来,大数据的兴起和快速处理大量数据的需求导致了新的数据库技术的发展,例如图数据库。图数据库非常适合处理高度连接的数据,例如社交网络,以及需要实时数据处理的应用程序。
Node.js 是一个 JavaScript 运行时环境,非常适合构建快速且可扩展的网络应用程序。在本文中,我们将探索如何将 Node.js 与图形数据库 Neo4j 结合使用。我们将学习如何安装 Neo4j、将数据导入图形数据库以及对数据运行查询。
Neo4j 可以安装在 Windows、Mac 或 Linux 上。我们将使用 Neo4j 桌面应用程序,它可以从 Neo4j 网站下载。
一旦安装了 Neo4j Desktop,我们就可以创建一个新的图形数据库。我们将我们的数据库命名为“tutorialdb”。
在本教程中,我们将使用来自 Neo4j 网站的电影数据集。电影数据集由电影、演员和导演的节点以及它们之间的关系组成。
我们可以使用 Neo4j 浏览器将电影数据集导入到我们的 Neo4j 数据库中。 Neo4j 浏览器是 Neo4j 的基于 Web 的界面,可用于运行查询和可视化数据。
要导入电影数据集,我们首先需要在 Neo4j 浏览器中创建一个新的图数据库。我们将我们的数据库命名为“tutorialdb”。
创建数据库后,我们可以在 Neo4j 浏览器中打开电影数据集文件。电影数据集文件是 CSV(逗号分隔值)文件。我们可以通过单击 Neo4j 浏览器中的“打开”按钮来打开文件。
文件打开后,我们可以选择“导入”按钮将数据导入到我们的 Neo4j 数据库中。
现在我们已将数据导入 Neo4j,我们可以开始对数据运行查询。
我们可以通过运行以下查询来查找数据库中的所有电影:
匹配(m:电影)
返回米
此查询将匹配所有带有标签“电影”的节点并返回它们。
我们还可以通过运行以下查询来查找数据库中的所有演员:
匹配(a:演员)
返回一个
我们可以通过运行以下查询在我们的数据库中找到所有董事:
匹配(d:导演)
返回
我们可以通过运行以下查询找到特定演员出演的所有电影:
匹配 (a:Actor)-[:ACTED_IN]->(m:Movie)
WHERE a.name = "汤姆汉克斯"
返回米
此查询将匹配标签为“演员”且与标签“电影”有关系的所有节点,并返回该演员看过的电影。在这种情况下,我们要查找汤姆·汉克斯看过的所有电影.
我们可以通过运行以下查询来查找特定电影的所有导演:
MATCH (m:Movie)<-[:DIRECTED]-(d:导演)
WHERE m.title = "黑客帝国"
返回
此查询将匹配标签为“电影”且与标签“导演”有关系的所有节点,并返回电影的导演。在这种情况下,我们正在寻找《黑客帝国》的导演。
我们可以通过运行以下查询找到特定导演执导的所有电影:
匹配 (d:Director)-[:DIRECTED]->(m:Movie)
WHERE d.name = "沃卓斯基姐妹"
返回米
该查询将匹配标签为“Director”且与标签“Movie”有关系的所有节点,并返回导演执导的电影。在本例中,我们要查找沃卓斯基姐妹执导的所有电影。
我们还可以通过运行以下查询来查找特定演员出演过的和特定导演执导过的所有电影:
匹配 (a:Actor)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(d:Director)
WHERE a.name = "Tom Hanks" AND d.name = "The Wachowskis"
返回米
该查询将匹配标签为“演员”且与标签“电影”有关系的所有节点,并返回演员参演和导演执导的电影。在这种情况下,我们正在寻找汤姆·汉克斯参演过的和沃卓斯基姐妹执导过的所有电影。
在本文中,我们学习了如何将 Node.js 与图形数据库 Neo4j 结合使用。我们已经安装了 Neo4j 并将数据导入到图形数据库中。我们还学习了如何对数据运行查询。