如果ArangoDB中有顶点(例如:明星、电影)和边(例如: star_in、导演、制片人),并且我希望得到由周星驰主演和导演的电影,那么如何编写查询语句?
发布于 2018-05-08 17:04:28
在这种情况下,您可以使用AQL邻居函数:
FOR n IN ANY @startId @@edgeCollection OPTIONS {bfs:true,uniqueVertices: 'global'}
RETURN n._idANY/INBOUND/OUTBOUND确定边的方向,而@startId是您的起始顶点(在本例中为Stephen Crow),而@@edgecollection是您使用的边集合。
当应该应用两个条件(主星和定向)时,可以使用两个相邻查询的交集。
以下AQL查询是针对您的用例的草稿:
FOR x IN INTERSECTION
((FOR y IN ANY 'star/StephenChow' star_in OPTIONS {bfs: true, uniqueVertices: 'global'} RETURN y._id),
(FOR y IN ANY 'star/StephenChow' director OPTIONS {bfs: true, uniqueVertices: 'global'} RETURN y._id))
RETURN x工作演员/电影示例可以在文档的Cookbook部分找到。
https://stackoverflow.com/questions/50225286
复制相似问题