我有一个Graph数据库,有三种简单的Vertex类型,User,Device和Sensor。关系如下,
边缘:UserHasDevices,DeviceHasSensors
每条边都有一个属性名称" isDeleted"。 删除顶点时,我不会永久删除它,但会删除" isDeleted" Edge的属性为" true"。请告诉我如何查询已删除的传感器列表,和/或已删除的设备列表,这些设备属于特定用户,由用户ID标识。
答案 0 :(得分:3)
要按边缘属性过滤,您可以使用outE('edgeName')并将条件放在一些括号中。根据我的理解,这应该是有用的:
select expand(outE('UserHasDevices')[isDeleted = true].inV()) from #13:12
在另一个question中,提问者说它不起作用。
我找到了另一种方法。您也可以从边缘展开。这看起来像这样:
select expand(in) from UserHasDevices where isDeleted = true and out = #13:12
但我不认为将物业存放在边缘性能方面是最好的理想。最好的办法是使另一条边包含“isDeleted”顶点。它会更简单,它可以让你有一个较小的查询执行时间。这样就不需要按边缘属性进行过滤。