Neo4j:如何从ID列表中筛选出节点?
我试图“选择所有帖子”并排除ID数组中的特定节点(帖子作者)。使用SQL,您可以在(1、2、3)中使用Neo4j:如何从ID列表中筛选出节点?,neo4j,neo4j.rb,Neo4j,Neo4j.rb,我试图“选择所有帖子”并排除ID数组中的特定节点(帖子作者)。使用SQL,您可以在(1、2、3)中使用而不是。如何创建密码查询来执行此操作 Post <-- author -- User - ID - ID Post与SQL基本相同;) 由于您将问题标记为Neo4j.rb: User.as(:author).posts.where('NOT(ID(author) IN ?)', [1,2,3]) User.as(:author).posts.whe
而不是。如何创建密码查询来执行此操作
Post <-- author -- User
- ID - ID
Post与SQL基本相同;)
由于您将问题标记为Neo4j.rb:
User.as(:author).posts.where('NOT(ID(author) IN ?)', [1,2,3])
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])
User.as(:author).posts.where_not('ID(author) IN ?', [1,2,3])
您没有提到什么类型的ID,所以我默认使用Neo4j ID,但请记住,这些ID可以循环使用,因此它们不会作为参考长期使用
编辑:
你的评论应该意识到,也许更好的方法是:
User.where_not(id: ids).posts
它应该将id
转换为您用于id\u属性的任何内容(uuid
默认设置)。哦,我想我应该澄清一下,我有一个Neo4j。rb在模型上有很多关系。因此,我不知道映射到该列表以获取neo_id
是否是一种方法?如果映射到关联,您将获取节点的所有数据。如果您只需要id,您可以object.association.pull(:uuid)
(如果您使用的是ActiveNode中的默认uuid
标识符),然后执行。其中不需要('author.uuid IN',id)
。我注意到您是从用户而不是从帖子创建Ruby查询的。我正试图从一个帖子容器中编写这个查询。有没有一种方法可以像container.posts.author.where\u not(id:ids)。然后返回\u posts
?是的,当然有:container.posts(:post.author.where\u not(id:ids)。pull(:post)
(可能需要是.pull('DISTINCT post')
BTW)它在这里的文档中:但作为一些示例的一部分,它可能应该放在更突出的位置。