登录
首页 >  Golang >  Go问答

寻找(多个)“最小值”的Cypher节点

来源:stackoverflow

时间:2024-02-07 10:57:27 304浏览 收藏

本篇文章给大家分享《寻找(多个)“最小值”的Cypher节点》,覆盖了Golang的常见基础知识,其实一个语言的全部知识点一篇文章是不可能说完的,但希望通过这些问题,让读者对自己的掌握程度有一定的认识(B 数),从而弥补自己的不足,更好的掌握它。

问题内容

案例:

我的节点 Categories 如下所示,我创建了从类别到父级的关系。

CREATE(p1:Categorie {
  id: 2,
  parent_id: 1,
  name: "Kids",
  is_active: true ,
  position: 1,
  level: 1,
})
CREATE(c1:Categorie {
  id: 5,
  parent_id: 2,
  name: "Toys",
  is_active: true ,
  position: 1,
  level: 2,
})

//New root category
CREATE(p2:Categorie {
  id: 9,
  parent_id: 1,
  name: "Holiday",
  is_active: true ,
  position: 1,
  level: 1,
})
CREATE(c2:Categorie {
  id: 12,
  parent_id: 9,
  name: "Water",
  is_active: true ,
  position: 1,
  level: 2,
})


CREATE(c1)-[:CHILD_OF]->(p1)
CREATE(c2)-[:CHILD_OF]->(p2)

然后我的产品具有 categorie_ids 数组,如下所示:

{
    "sku": "abc",
    "name": "Electric boot",
    "categorie_ids": [ 
        1,
        5,
        9,
        12
    ]
}

API 会返回该产品位于“in”的所有 id。对我来说,所有的关系都如此混乱。此示例是最小的,但实际上每个产品可能最多有 20 个关系。

疑问/问题:

我想创建与类别中最低节点的关系。在这种情况下,产品有两个主要类别,因此有两个底部类别。所以我想创建与 id 12 和 5 的关系。

我就是无法理解密码查询。有人可以解释一下吗?


正确答案


您基本上正在查看以下查询:

根据您的模型,您正在考虑添加一个谓词,类别节点不具有 INCOMING 类型的关系 CHILD_OF

WITH [1,5,9,12] AS categoryIds
MATCH (n:Categorie)
WHERE n.id IN categoryIds
AND NOT ()-[:CHILD_OF]->(n)
RETURN n.id

终于介绍完啦!小伙伴们,这篇关于《寻找(多个)“最小值”的Cypher节点》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>