[英]OrientDB SQL: Include rids from connected vertices
我有一個頂點“ A”連接到頂點“ B”和“ C”。
我想用B和C的記錄ID的附加列表查詢A。
屬性外觀的示例:
A:
{
"@rid": "#1:0",
"property": "ValueForA"
}
B:
{
"@rid": "#2:0",
"property": "ValueForB"
}
C:
{
"@rid": "#2:1",
"property": "ValueForC"
}
我想要一個查詢A,該查詢給了我:
{
"@rid": "#1:0",
"property": "ValueForA",
"connected": ["#2:0", "#2:1"]
}
我希望僅憑投影就能做到這一點。 它適用於B和C中的任何自定義字段,但對於@rid,我可以獲得一個鏈接(為什么會有這種不一致?)。
我試過了:
SELECT @rid, *, out().@rid as connected FROM #1:0
這確實給了我我想要的東西,但列表中的標記是指向記錄的鏈接,而不僅僅是標記。
和
SELECT @rid, *, out().@rid.asString() as connected FROM #1:0
這使:
{
"@rid": "#1:0",
"property": "ValueForA",
"connected": "[#2:0, #2:1]"
}
其中,connected屬性只是一個字符串。
@rid和其他屬性不一致的原因可能是(希望如此)。 如我所寫,如果@rid改為“ id”,則第一個示例可以正常工作。 無論如何,我想知道一種簡單的方法,因為我覺得這樣做應該很容易。
更新
在上面的示例中將id添加為屬性示例會產生誤導,因為它可能以某種方式暗示它是唯一的(盡管我從未說過),因此我將其刪除。 我只是添加它們以使3條記錄分開。 但是,record-id被用作唯一ID來分隔上面的頂點,因此無法使用記錄的任何屬性。 為了進一步說明,記錄可以具有任意屬性。 不僅是上面給出的示例。
再次,第一個問題是是否可以使用投影?
進一步的評論:如果我將每個記錄的屬性“ rid”保存為與@rid完全相同的記錄ID,我會很容易做到這一點,這真的很奇怪。 我為什么要這樣做(我不會那樣做)以便使其易於使用。
UPDATE2
我還希望能夠一次定位多個頂點並為每個頂點附加連接。 我已經使用投影對許多屬性(而不是@rid)進行了此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.