首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j根据查询结果创建新数据库

Neo4j根据查询结果创建新数据库
EN

Stack Overflow用户
提问于 2022-04-28 18:09:51
回答 1查看 122关注 0票数 1

在Neo4j中是否有一种方法可以创建一个新的数据库,由来自另一个数据库的一些查询数据填充?

例如,我有一个由以下节点组成的数据库:

上面的图可以通过以下语句创建:(在本例中,假设图是完整的数据库)

代码语言:javascript
复制
CREATE (n0:Node)
CREATE (n1:Node)
CREATE (n2:Node {capital_letter: "A"})
CREATE (n3:Node)
CREATE (n4:Node)
CREATE (n5:Node)
CREATE (n6:Node {capital_letter: "B"})
CREATE (n7:Node)
CREATE (n8:Node {capital_letter: "A"})
CREATE (n9:Node {capital_letter: "B"})
CREATE (n10:Node)
CREATE (n2)-[:TRANSACTIONS]->(n0)
CREATE (n2)-[:TRANSACTIONS]->(n1)
CREATE (n2)-[:TRANSACTIONS]->(n3)
CREATE (n3)-[:TRANSACTIONS]->(n6)
CREATE (n4)-[:TRANSACTIONS]->(n2)
CREATE (n4)-[:TRANSACTIONS]->(n7)
CREATE (n6)-[:TRANSACTIONS]->(n5)

我的问题

有没有办法查询这些节点的子图,然后将它们放入一个新的持久数据库??

例如,我想构建一个新的数据库,包含所有的A和B节点,以及它们的所有邻居和它们之间的所有关系。

我想如下所示:

代码语言:javascript
复制
INSERT INTO NEW DATABASE "NEW DB"
MATCH (a {capital_letter: "A"})
OPTIONAL MATCH (a {capital_letter: "A"})-[t1]-(a_neighbours)
MATCH (b {capital_letter: "B"})
OPTIONAL MATCH (b {capital_letter: "B"})-[t2]-(b_neighbours)
RETURN a, b, t1, t2, a_neighbours, b_neighbours

当然上面的语句不工作,但是在Neo4J中是否有可能像这样构造一个数据库?

请注意,我的数据库由100Mio+节点组成,所以只有一种可行的方法是非常有用的。

**我最后的方法是查询数据,将其导出到.csv,然后通过新的管理工具https://neo4j.com/docs/operations-manual/current/tutorial/neo4j-admin-import/构建一个新的数据库。

我只想知道是否还有别的(也许更快)的方法。

EN

回答 1

Stack Overflow用户

发布于 2022-05-02 08:46:29

在Neo4j世界中,DML和DDL语句是相互隔离的。通过转储文件或CSV导出源数据并导入它是唯一的本机选项。

如果连接到Neo4j 通过另一种编程语言,可以在那里构建逻辑,从源图读取结果并将结果写入目标图。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72048425

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档