2015-07-13 2 views
2

У меня есть база данных Graph с тремя простыми типами Vertex, User, Device and Sensor. Отношения идет как,Orientdb SQL-запрос для проверки свойств края

Кромки: UserHasDevices, DeviceHasSensors

Каждое ребро имеет имя свойства "IsDeleted". При удалении Vertex я не удаляю его постоянно, но создаю свойство isDeleted для Edge как «true». Пожалуйста, дайте мне знать. Как запросить список удаленных датчиков и/или удаленный список устройств, принадлежащих определенному пользователю, идентифицированный идентификатором пользователя.

ответ

2

Для фильтрации по свойствам краев вы можете использовать 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» вершины. Это будет проще, и это позволит вам иметь меньшее время выполнения запроса. Это устраняет необходимость фильтровать по свойству edge.

+0

Большое спасибо. Это был ответ, который я искал. – YasithLokuge

Смежные вопросы