[英]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.