В основном так же, как SQL;)
MATCH (author)-[:author]->(post:Post)
WHERE NOT(ID(author) IN {id_list})
RETURN DISTINCT post
Поскольку вы помечено на вопрос Neo4j.rb:
User.as(:author).posts.where('NOT(ID(author) IN ?)', [1,2,3])
В новых версиях Neo4j.rb:
User.as(:author).posts.where_not('ID(author) IN ?', [1,2,3])
Вы не указали, что такое идентификаторы, поэтому я defa ult до Neo4j, но имейте в виду, что они могут быть переработаны, поэтому они не предназначены для долгосрочного использования в качестве ссылки.
EDIT:
Ваш комментарий MADE быть понимаем, что, возможно, лучший способ идти о нем:
User.where_not(id: ids).posts
Он должен перевести id
к тому, что вы используете для id_property
(uuid
по умолчанию).
ха-ха, спасибо. Я надеялся на ответ Neo4j.rb. =] – Andrew
О, я думаю, я должен уточнить, у меня есть отношения Neo4j.rb 'has_many' на модели. Поэтому я не знаю, является ли отображение этого списка для получения «neo_id» - это путь или нет? – Andrew
Если вы перейдете по ассоциации, вы потянете все данные за узлы. Если вам нужен только идентификатор, вы можете 'object.association.pluck (: uuid)' (если вы используете идентификатор 'uuid' по умолчанию из ActiveNode), а затем выполните' .where_not ('author.uuid IN?', Ids) '. –