繁体   English   中英

Orientdb SQL查询以检查边缘属性

[英]Orientdb SQL query to check edge properties

我有一个具有三个简单顶点类型(用户,设备和传感器)的Graph数据库。 关系是这样的,

边缘:UserHasDevices,DeviceHasSensors

每个边都有一个属性名称“ isDeleted”。 删除顶点时,我不会使它永久删除,而是将Edge的“ isDeleted”属性设为“ true”。 请让我知道如何查询属于特定用户的,由用户ID标识的已删除传感器的列表和/或已删除设备的列表。

要按edges属性过滤,可以使用outE('edgeName')并将条件放在方括号中。 根据我的理解,这应该可以工作:

select expand(outE('UserHasDevices')[isDeleted = true].inV()) from #13:12

在另一个问题中 ,询问者说它不起作用。

我找到了另一种方法。 您也可以从边缘扩展。 看起来像这样:

select expand(in) from UserHasDevices where isDeleted = true and out = #13:12

但我认为以最佳性能存储属性不是最好的选择。 最好的做法是让另一个包含“ isDeleted”顶点的边。 这样会更简单,并且可以缩短查询执行时间。 这将消除对edge属性进行过滤的需要。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM