如果不存在则在 Neo4j 中创建关系,如果存在则更新属性值

哈尔瓦尔丹

我有一个具有三个属性的节点,比如创建的东西

create (a:item{type:'detergent', weight:'500g', 'quantity':322}) 

另一个节点像

create (b:customer{id:'933B3'})

count节点a与节点之间应该存在与属性的关系b

count = 1如果关系不存在,我想创建关系,否则通过向其添加 1 来更新其计数值,例如set relationship.count = relationship.count + 1

我可以使用MERGE,以及ON CREATEON MATCH此目的。但是,问题在于:MERGE 匹配整个模式,而我只想匹配节点 a 的两个属性而不是所有三个属性。

因此,从技术上讲,我想在

a:item{type:'detergent', weight:'500g'}b:customer{id:'933B3'}

这意味着,无论洗涤剂的数量如何,所有label = itemtype = 洗涤剂重量 = 500g的节点都应该与id = 933B3 的客户有关系

如果我在节点 a 的两个属性上使用 MERGE,它不会在现有项目节点(具有 3 个属性)和客户节点之间创建关系,而是创建具有在 MERGE 中指定的属性的新节点。如上所述,如果发现关系已经存在,我还需要更新 count 属性。

如何匹配已存在节点的选定属性以在现有节点之间创建具有初始化属性值的关系,否则更新关系的属性值已存在?

逆猎鹰

使用 MERGE 时,不必指定节点的所有属性。MERGE 就像 MATCH,如果没有找到匹配项,则为 CREATE。肯定有具有这些属性的 :item 节点,并且是否有超出您在 MERGE 中指定的属性的其他属性并不重要。

这应该适合你:

MERGE (a:item{type:'detergent', weight:'500g'})
MERGE (b:customer{id:'933B3'})
MERGE (a)-[r:REL]->(b) // replace with your actual relationship type
ON CREATE SET r.count = 1
ON MATCH SET r.count = r.count + 1

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如果存在则更新两个节点之间的关系,如果不存在则创建新的关系 NEO4j

来自分类Dev

Neo4j Cypher MATCH(如果不存在)

来自分类Dev

Neo4j创建(如果不存在),否则更新

来自分类Dev

在Neo4J中,创建两个节点之间的关系,但是如果其中一个节点不存在,则在同一调用中创建关系

来自分类Dev

neo4j更新数组属性(如果存在)

来自分类Dev

neo4j更新数组属性(如果存在)

来自分类Dev

Neo4j Match语句包含数据库中不存在的属性

来自分类Dev

仅当neo4j中不存在节点时如何创建新节点

来自分类Dev

Neo4j gem-查询不存在的关系

来自分类Dev

Neo4j gem-查询不存在的关系

来自分类Dev

如果属性存在,则 Neo4J 合并节点并创建另一个具有关系的节点

来自分类Dev

如果记录不存在,则在SQL中插入记录

来自分类Dev

NeoMaven回购中不存在Neo4j cypher dsl 3.0.6 jar

来自分类Dev

在 Neo4j 中合并不存在的节点并返回源节点

来自分类Dev

在Neo4j(4.1.3)中,如果一个节点不存在,我如何一个接一个地匹配3个节点

来自分类Dev

Neo4j gem-仅在两个节点之间不存在时才创建关系

来自分类Dev

Neo4j Cypher-比较属性值(如果存在)吗?

来自分类Dev

Neo4j:仅当不存在时如何调用“ CREATE INDEX”

来自分类Dev

neo4j转储错误:数据库不存在

来自分类Dev

Neo4j:Neo4j 中是否存在“不包含”?

来自分类Dev

如何解决不存在的类上的Spring Data Neo4j Rest依赖关系

来自分类Dev

Shell:如果属性不存在,则在 XML 元素中添加属性

来自分类Dev

雄辩的:如果不存在则创建关系

来自分类Dev

我如何根据NEO4J中是否存在关系在返回节点上添加属性

来自分类Dev

如果不存在但不在tmux中附加会话,则在后台创建会话

来自分类Dev

如果不存在,则在oracle数据库中自动创建表

来自分类Dev

如果不存在但不在tmux中附加会话,则在后台创建会话

来自分类Dev

如果不存在php,则在其他文件夹中创建txt文件

来自分类Dev

如果文件夹不存在,则在 vbs 中创建文件夹

Related 相关文章

  1. 1

    如果存在则更新两个节点之间的关系,如果不存在则创建新的关系 NEO4j

  2. 2

    Neo4j Cypher MATCH(如果不存在)

  3. 3

    Neo4j创建(如果不存在),否则更新

  4. 4

    在Neo4J中,创建两个节点之间的关系,但是如果其中一个节点不存在,则在同一调用中创建关系

  5. 5

    neo4j更新数组属性(如果存在)

  6. 6

    neo4j更新数组属性(如果存在)

  7. 7

    Neo4j Match语句包含数据库中不存在的属性

  8. 8

    仅当neo4j中不存在节点时如何创建新节点

  9. 9

    Neo4j gem-查询不存在的关系

  10. 10

    Neo4j gem-查询不存在的关系

  11. 11

    如果属性存在,则 Neo4J 合并节点并创建另一个具有关系的节点

  12. 12

    如果记录不存在,则在SQL中插入记录

  13. 13

    NeoMaven回购中不存在Neo4j cypher dsl 3.0.6 jar

  14. 14

    在 Neo4j 中合并不存在的节点并返回源节点

  15. 15

    在Neo4j(4.1.3)中,如果一个节点不存在,我如何一个接一个地匹配3个节点

  16. 16

    Neo4j gem-仅在两个节点之间不存在时才创建关系

  17. 17

    Neo4j Cypher-比较属性值(如果存在)吗?

  18. 18

    Neo4j:仅当不存在时如何调用“ CREATE INDEX”

  19. 19

    neo4j转储错误:数据库不存在

  20. 20

    Neo4j:Neo4j 中是否存在“不包含”?

  21. 21

    如何解决不存在的类上的Spring Data Neo4j Rest依赖关系

  22. 22

    Shell:如果属性不存在,则在 XML 元素中添加属性

  23. 23

    雄辩的:如果不存在则创建关系

  24. 24

    我如何根据NEO4J中是否存在关系在返回节点上添加属性

  25. 25

    如果不存在但不在tmux中附加会话,则在后台创建会话

  26. 26

    如果不存在,则在oracle数据库中自动创建表

  27. 27

    如果不存在但不在tmux中附加会话,则在后台创建会话

  28. 28

    如果不存在php,则在其他文件夹中创建txt文件

  29. 29

    如果文件夹不存在,则在 vbs 中创建文件夹

热门标签

归档