Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 筛选与特定节点没有关系的Neo4j节点_Ruby On Rails_Neo4j_Cypher_Neo4j.rb - Fatal编程技术网

Ruby on rails 筛选与特定节点没有关系的Neo4j节点

Ruby on rails 筛选与特定节点没有关系的Neo4j节点,ruby-on-rails,neo4j,cypher,neo4j.rb,Ruby On Rails,Neo4j,Cypher,Neo4j.rb,我想找到所有尚未与我的酒吧关联的食物。 我使用neo4j.rb(4.1.2)和Rails(4.2)。我现在使用的代码可以产生正确的输出,但感觉不太理想: @foos = Foo.all.find_all do |foo| foo.bars.rels_to(current_bar).count == 0 end 使用Cypher有更好的方法吗?这里有一种使用Cypher的方法。我假设您只对直接关系感兴趣,Bar节点由id属性标识 MATCH (b:Bar), (f:Foo) WHERE b

我想找到所有尚未与我的酒吧关联的食物。 我使用neo4j.rb(4.1.2)和Rails(4.2)。我现在使用的代码可以产生正确的输出,但感觉不太理想:

@foos = Foo.all.find_all do |foo|
  foo.bars.rels_to(current_bar).count == 0
end 

使用Cypher有更好的方法吗?

这里有一种使用Cypher的方法。我假设您只对直接关系感兴趣,
Bar
节点由
id
属性标识

MATCH (b:Bar), (f:Foo)
WHERE b.id = 123 AND NOT (b)--(f)
RETURN b, COLLECT(f);

在Cypher中有一种方法可以做到这一点。我假设您只对直接关系感兴趣,
Bar
节点由
id
属性标识

MATCH (b:Bar), (f:Foo)
WHERE b.id = 123 AND NOT (b)--(f)
RETURN b, COLLECT(f);

在Neo4j.rb中,这将是
current_bar.query_as(:b)。match('f:Foo')。where('NOT(b)-(f)'))。pull(:b,'collect(f))
谢谢@cybersam!我不得不将neo4j.rb的版本改为
current_bar.query_as(:b).match('(f:Foo)).where('NOT(b)-(f)')).pull('collect(f)')。首先
使其工作(缺少(和)围绕f:Foo),并像我的旧ruby代码一样工作。任何读过这篇文章的人。谢谢你,克里斯!在Neo4j.rb中,这将是
current_bar.query_as(:b)。match('f:Foo')。where('NOT(b)-(f)'))。pull(:b,'collect(f))
谢谢@cybersam!我不得不将neo4j.rb的版本改为
current_bar.query_as(:b).match('(f:Foo)).where('NOT(b)-(f)')).pull('collect(f)')。首先
使其工作(缺少(和)围绕f:Foo),并像我的旧ruby代码一样工作。任何读过这篇文章的人。谢谢你,克里斯!塞弗萨姆的回答是好的。您应该升级到Neo4j.rb 4.1.2!升级了neo4j.rb并更新了问题。Cyphersam的答案很好。您应该升级到Neo4j.rb 4.1.2!升级了neo4j.rb并更新了问题。