如何正确的创建和维护关系(边)

提问参考模版:

  • nebula 版本:3.6.0

  • 部署方式:分布式

  • 安装方式:tar包

  • 是否上生产环境: N

  • 如何正确的创建和维护关系(边)
    有2种实体,分别为“虚拟机”、“物理机”
    虚拟机是运行在物理机中的,虚拟机对应的记录中保存有“物理机IP”这个字段,
    “物理机”对应的记录中保存有“IP地址”这个字段,
    如果虚拟机a运行在某台物理机b中的时候,则虚拟机a的“物理机IP”==虚拟机b的“IP地址”字段
    请问该如何正确的维护“虚拟机”、“物理机”之间的关系(边),使用数据的时候,会根据虚拟机查询对应的物理机,也可能反向查询物理机上运行的所有虚拟机

之前使用的是neo4j,可以直接根据查询出的结果来创建对应实体之间的关系,
例如使用下面的语句则可以根据ip地址为虚拟机和物理机创建一个名叫runOn的关系。
MATCH (a:虚拟机),(b:物理机)
WHERE a.物理机IP = b.IP地址
CREATE (a)-[r:runOn {name: ‘资源依赖’}]->(b)

现在切换到nebula-graph后,学习了一下语法书,发现好像不支持上面的方式了
请问
1、那我应该用怎么样的方式去创建对应的关系呢?
2、是否可以用nGQL语句完全实现关系的建立和后续的维护

非常感谢!

目前 3.x 上,NebulaGraph 不支持 Cypher DML 和管道的 CREATE EDGE 表达,所以没办法在 1-shot 的query里做这个哈,推荐在应用层面用 2-shot query 去做,第一个query获取信息,第二个 query 创建边

cc @MuYi