首頁 > 後端開發 > Golang > Cypher 尋找(多個)「最低」節點

Cypher 尋找(多個)「最低」節點

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
發布: 2024-02-08 20:54:11
轉載
715 人瀏覽過

Cypher 查找(多个)“最低”节点

問題內容

案例:

我的節點 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 數組,如下所示:

<code>{
    "sku": "abc",
    "name": "Electric boot",
    "categorie_ids": [ 
        1,
        5,
        9,
        12
    ]
}
</code>
登入後複製

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 尋找(多個)「最低」節點的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:stackoverflow.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板