Я новичок в 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.
Я пытался. Нет разницы. –
Я обновил свой ответ. Я считаю, что это ваш случай. – vitorenesduarte
Моя ошибка! Обновлено. Последний работает, но не первый. Почему это? И может ли запрос быть короче? –