簡體   English   中英

Orientdb SQL查詢以檢查邊緣屬性

[英]Orientdb SQL query to check edge properties

我有一個具有三個簡單頂點類型(用戶,設備和傳感器)的Graph數據庫。 關系是這樣的,

邊緣:UserHasDevices,DeviceHasSensors

每個邊都有一個屬性名稱“ isDeleted”。 刪除頂點時,我不會使它永久刪除,而是將Edge的“ isDeleted”屬性設為“ true”。 請讓我知道如何查詢屬於特定用戶的,由用戶ID標識的已刪除傳感器的列表和/或已刪除設備的列表。

要按edges屬性過濾,可以使用outE('edgeName')並將條件放在方括號中。 根據我的理解,這應該可以工作:

select expand(outE('UserHasDevices')[isDeleted = true].inV()) from #13:12

在另一個問題中 ,詢問者說它不起作用。

我找到了另一種方法。 您也可以從邊緣擴展。 看起來像這樣:

select expand(in) from UserHasDevices where isDeleted = true and out = #13:12

但我認為以最佳性能存儲屬性不是最好的選擇。 最好的做法是讓另一個包含“ isDeleted”頂點的邊。 這樣會更簡單,並且可以縮短查詢執行時間。 這將消除對edge屬性進行過濾的需要。

暫無
暫無

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

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