Star

如何存储一个双向的关系的节点?

  • nebula 版本:v2.0 alaph
  • 部署方式:单机
  • 问题的具体描述
    请问,在官方给的关系的例子里,明显是一个单向方向的关系follow和serve,但是现实中会存在一个
    双向的关系,例如A和B是同学,A和B是同事这种。
    请问如果要保存这样的双向关系,是需要保存A-》B, 再存一份B-》A吗? 如果这么存,查2跳,3跳的时候,会有很多我们不想要的数据。请问这方面有没有什么最佳实践?

目前 A B双向关系的话,在一些场景如:go会查询出 循环 情况

但是你可以使用match 在一些条件上添加设置 避免出现循环的情况

MATCH (n)-[]-(m:player{name:“Kyle Anderson”})-[]-(l)

MATCH (n)-[]-(m:player)-[]-(l)
WHERE m.name==“Kyle Anderson”
RETURN n,m,l

MATCH p = ()-[e1]-(m:player{name:“Kyle Anderson”})-[e2]-()-[e3]-(k)
WHERE k.name == “Marc Gasol”
RETURN e1, e2, e3

插入的时候你可以只插入 A->B 这样一条边,如果是想获取反向查询的结果,你可以在 GO 语句中使用 BOTH 来说明方向,文档:GO - Nebula Graph Database Manual

浙ICP备20010487号