我正在为一个大型专业社交网络工作,我们开始检查OrientDB是否符合社交图谱方面的要求。目前,我们已经设法部署了一个包含10个节点的集群,设置备份并恢复并将所有数据从MongoDB填充到OrientDB,没有任何重大问题。 我们的数据模型是:
我想知道的是:
SELECT out('Followed').out('Followed') as friend FROM 14:4
的内容,其中14:4是个人资料对象。不幸的是,它给了我个人档案以及公司,因为个人资料可以"关注"一家公司。如何过滤才能获取个人资料?我已经尝试了SELECT out('Followed').out('Followed') as friend FROM 14:4 where @class = 'Profile'
但是它不起作用:(我应该有多个边缘类(FollowedProfile和FollowedCompany)来简化查询吗?非常感谢。
答案 0 :(得分:0)
1)您可以尝试使用
SELECT FROM (SELECT expand(out('Followed').out('Followed')) as friend FROM 14:4) Where @class='Profile'
2)我认为边缘的属性(谢谢)更好
3)您可以使用shortestPath函数(http://www.orientechnologies.com/docs/last/orientdb.wiki/SQL-Functions.html):
示例:
select shortestPath(#8:32, #8:10, 'BOTH')