我是Janusgraph数据库的新手。我有一个需求,我需要隐藏两个顶点之间的关系(边)而不将其放下,以后我应该能够根据条件再次在这些顶点之间检索/建立相同的关系。
我只知道如何删除边缘,但不知道如何再次检索/恢复关系。你能在这里帮我吗?
非常感谢您的时间。
答案 0 :(得分:3)
如果您想“恢复”连接,我认为您根本不应该删除它们。
仅在边缘上保留一个指示边缘状态(活动/不活动)的属性,或者在边缘上保留开始和结束日期。 这样,在遍历图形时,您需要确保仅使用活动边,但是如果要还原它们,仍然可以轻松找到旧边。
例如:
g.addV('person').property('id', 'bob').property('name', 'Bob')
g.addV('person').property('id', 'alice').property('name', 'Alice')
g.addV('person').property('id', 'eve').property('name', 'Eve')
g.V('bob').addE('friend').to(g.V('alice'))
g.V('bob').addE('friend').to(g.V('eve'))
鲍勃与爱丽丝和夏娃的朋友:
g.V('bob').out('friend').values("name")
==>Alice
==>Eve
让我们说鲍勃和爱丽丝有一个后果,他们不再是朋友:
g.V('bob').outE('friend').where(inV().hasId('alice')).property('status', 'inactive')
现在,您只能查询Bob的活跃朋友,而不会失去原有的优势:
g.V('bob').outE('friend').not(has('status', 'inactive')).inV().values("name")
==> Eve