2015-06-13 2 views
1

Я новичок в OrientDB/grahps, и я пытаюсь понять ее логику.Понимать логику Ori-db

Предположим, что есть вершины Кино 1: n Жанры с краем SortOf. Мне хотелось бы узнать другие жанры, в которых есть фильмы «Комедия».

После прочтения документации я думал, что это должно быть что-то вроде этого:

SELECT expand(in('SortOf').out('SortOf')[name<>'Comedy']) 
FROM Genre WHERE name = 'Comedy'` 

возвращает 0 записей. Если я удалить <> я получаю весь список, и даже могу фильтровать =:

SELECT expand(set(in('SortOf').out('SortOf')[name='Drama'])) 
FROM Genre WHERE name='Comedy' 

Возвращает 1 записи. Сейчас я с результатом запроса ниже:

SELECT FROM (SELECT expand(set(in('SortOf').out('SortOf'))) 
FROM Genre WHERE name = 'Comedy') 
WHERE name NOT LIKE 'Comedy'` 

Опять же, она возвращает 0 записей, если я ставлю name!='Comedy' вместо LIKE.

Каков правильный путь для этого запроса? Где я должен разместить count, чтобы посмотреть, сколько фильмов в каждом жанре?

UPDATE

Я заменил != с <>, так работает запрос:

SELECT FROM (SELECT expand(set(in('SortOf').out('SortOf'))) 
FROM Genre WHERE name='Comedy') 
WHERE name<>'Comedy'` 

Но первый запрос до сих пор не работает. Что мне не хватает? Else.

ответ

1

Оператор вы ищете является <>

См this для других операторов.

UPDATE В вашем случае:

create class Movie extends V 
create class Genre extends V 
create class SortOf extends E 

create vertex Movie set name = 'm1' 

create vertex Genre set name = 'Comedy' 
create vertex Genre set name = 'Drama' 


create edge SortOf from (select from Movie where name = 'm1') to (select from Genre where name = 'Comedy') 
create edge SortOf from (select from Movie where name = 'm1') to (select from Genre where name = 'Drama') 


select from (
    select expand(in('SortOf').out('SortOf')) from Genre where name = 'Comedy' 
) where name <> 'Comedy' 
+0

Я пытался. Нет разницы. –

+0

Я обновил свой ответ. Я считаю, что это ваш случай. – vitorenesduarte

+0

Моя ошибка! Обновлено. Последний работает, но не первый. Почему это? И может ли запрос быть короче? –

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