Gremlin - 如何根据 Edge 的属性过滤结果?



我们有'users'记录,并且与其他用户有'friend'边缘关系。我想通过将isDeleted属性添加到"朋友"边缘并根据该属性过滤结果来软删除关系。我们如何查询这种情况?

添加4个用户:

g.addV('users').property(id,'user1').addV('users').property(id,'user2').addV('users').property(id,'user3').addV('users').property(id,'user4')

添加user1到user2、user3和user4的好友关系

g.V('user1').addE('Friend').to(V('user2')).next()
g.V('user1').addE('Friend').to(V('user3')).next()
g.V('user1').addE('Friend').to(V('user4')).next()

检查边缘不包含isDeleted标志的所有好友

gremlin> g.V('user1').outE().hasNot('isDeleted').inV()
==>v[user2]
==>v[user3]
==>v[user4]

标记user1和user2之间的边为删除

g.V('user1').outE().as('myEdge').inV().has(id,'user2').select('myEdge').property('isDeleted',true)

获取user1的已删除好友,边缘为isDeleted标志为true

gremlin> g.V('user1').outE().has('isDeleted',true).inV()
==>v[user2]

获取user1的当前好友,不带isDeleted标志。

gremlin> g.V('user1').outE().hasNot('isDeleted').inV()
==>v[user3]
==>v[user4]

最新更新