簡體   English   中英

如何在Arango DB圖形中查詢連接到多個節點的節點

[英]How to query for a node that is connected to multiple nodes in Arango DB graph

我有一個圖,其中包含兩種類型的節點:景點和酒店。

我想做的就是查詢被三個景點包圍的酒店 我現在(在下面)的查詢提供了至少與一個景點相關的酒店。

FOR document IN Attraction
FOR vertex, edge, path IN 1..2 OUTBOUND document GRAPH "LondonAttractionDB" 
FILTER path.vertices[0].entityTypes[0] == "Attraction" OR path.vertices[0].entityTypes[0] == "Attraction" OR path.vertices[0].entityTypes[0] == "Attraction"
FILTER path.vertices[1].entityTypes[0] == "Hotel"
FOR prop4 IN path.edges[0].properties  
FILTER prop4.name == "name" AND prop4.value == "Food_and_beverage_location" 
OR prop4.name == "name" AND prop4.value == "Food_and_beverage_location" 
OR prop4.name == "name" AND prop4.value == "Accommodation_location" 
RETURN DISTINCT path

這給出了以下結果。 (橙色-酒店,綠色-景點)

在此處輸入圖片說明

如何在圈子中顯示結果? (與三個景點相連的酒店)

任何幫助深表感謝。

沒有數據集的詳細信息(文檔結構和集合),很難回答,但是根據您的示例查詢和描述,我將使用另一種方法:

  • 查看所有文件(景點和酒店似乎位於同一集合中)
  • 按類型篩選酒店
  • 對於每個酒店節點,讓鄰居進入邊緣
  • 按吸引力類型過濾這些節點
  • 計算酒店有多少個節點
  • 返回與三個景點完全相同的酒店
FOR hotel IN Attraction
  FILTER doc.entityTypes[0] == "Hotel"
  LET attractions = (
      FOR vertex IN 1..1 INBOUND hotel GRAPH "LondonAttractionDB"
      FILTER vertex.entityTypes[0] == "Attraction"
      RETURN 1
  )
  FILTER LENGTH(attractions) == 3
  RETURN hotel

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM