OrientDB按边缘属性查询

时间:2015-03-20 01:36:42

标签: sql database orientdb edge

我有两个顶点类:位置和用户,我也有两个边:Friend和GoingTo。用户可以与其他用户成为“朋友”,用户也可以“转到”位置。边缘GoingTo有一个名为going_date的日期时间属性,其中包含用户前往位置的日期。

我想返回每个具有in(“GoingTo”)边缘的'Location',其中'User'是特定起始'User'的(“朋友”)(例如#12:11)。

我所拥有的是所有地点,但没有goTo的日期属性......

SELECT expand(both('Friend').out('goingTo')) FROM #12:11

如何通过此边缘属性进行查询?

2 个答案:

答案 0 :(得分:2)

您可以对边缘属性进行过滤:

SELECT expand(both('Friend').outE('goingTo')[going_date='2015-01-01'].inV()) FROM #12:11

答案 1 :(得分:0)

稍晚但由于这对我的谷歌搜索来说是一个很好的结果,我想我会找到on another question的答案。

我的用例,我相信一大类用例依赖于递归, 将数据存储在边缘属性中。

对于OP,它应该是

SELECT t1.*
FROM t1
LEFT JOIN t1 t2
ON t1.id2=t2.id2
  AND t1.price>t2.price
WHERE t2.ID IS NULL

这似乎是一个你有1个“前往”边缘的情况,所以它可能是

SELECT expand(both('Friend').out('goingTo')) FROM #12:11 WHERE out_goingTo[0].going_date = '2015-01-01' 表示范围或

WHERE out_goingTo[0-100]一套。

HTH!