gpt4 book ai didi

neo4j - Cypher 中合并和创建的区别

转载 作者:行者123 更新时间:2023-12-02 17:38:44 32 4
gpt4 key购买 nike

  1. 谁能告诉我 Cypher 查询中 Merge 和 Create 的区别。
  2. Neo4j 如何以物理方式存储数据?

提前致谢..

最佳答案

CREATE 照它说的做。它创建,如果这意味着创建重复项,那么它就创建了。 MERGE 执行与创建相同的操作,但还会检查是否已存在具有您指定属性的节点。如果是这样,那么它就不会创建。这有助于避免重复。下面是一个示例:我使用 CREATE 两次来创建一个同名的人。

neo4j-sh (?)$ create (p:Person {name: "Bob"});
+-------------------+
| No data returned. |
+-------------------+
Nodes created: 1
Properties set: 1
Labels added: 1
9 ms
neo4j-sh (?)$ create (p:Person {name: "Bob"});
+-------------------+
| No data returned. |
+-------------------+
Nodes created: 1
Properties set: 1
Labels added: 1
5 ms

所以现在当我们查询时,有两个 Bob。

neo4j-sh (?)$ match (p:Person {name:"Bob"}) return p;
+--------------------------+
| p |
+--------------------------+
| Node[222124]{name:"Bob"} |
| Node[222125]{name:"Bob"} |
+--------------------------+
2 rows
46 ms

让我们在另一个 Bob 中MERGE,看看会发生什么。

neo4j-sh (?)$ merge (p:Person {name:"Bob"});
+--------------------------------------------+
| No data returned, and nothing was changed. |
+--------------------------------------------+
2 ms
neo4j-sh (?)$ match (p:Person {name:"Bob"}) return p;
+--------------------------+
| p |
+--------------------------+
| Node[222124]{name:"Bob"} |
| Node[222125]{name:"Bob"} |
+--------------------------+
2 rows
11 ms

Bob 已经存在,所以 MERGE 在这里什么都不做。再次查询,同样存在两个Bob。如果数据库中没有 Bob,MERGE 会执行与 CREATE 相同的操作。

关于neo4j - Cypher 中合并和创建的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23197134/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com