Neo4j gem - 在一个属性中查询多个参数

时间:2014-11-27 07:25:18

标签: ruby-on-rails parameters neo4j neo4j.rb

我甚至不确定这个标题是否是最好的描述。

我正在通过表格为我的活动构建一些基本的过滤功能。事件具有选择下拉列表中的类别。

现在,当您想要过滤时,可以通过复选框选择要显示的类别。

我有点难过如何做到这一点。是否可以在一个查询中完成所有操作?或者你为每个类别将它分成1个?

我的旧查询是current_user.friends.events(:event, :rel).where("rel.admin = {admin_p} AND event.detail = {detail_p}").params(admin_p: true, detail_p: true).pluck(:event)

在这种情况下,我需要像event.category = category1, category2, cateogry3这样的东西。显然这不是它的写法。如何实现这个目标?

1 个答案:

答案 0 :(得分:1)

在cypher中,IN可让您匹配数组中的结果。

MATCH (u:User)-[r1:INVITED_TO]->(e:Event) WHERE e.uuid IN [1, 2, 3, 4, 5] RETURN e

这会将事件与该数组中的任何uuid属性进行匹配。在Ruby gem中,如果在where方法中使用数组,则会在QueryProxy中自动处理。

current_user.events.where(category: [1, 2, 3, 4, 5])

在表单中,确保每个复选框的值与其ID一致。将这些ID放入数组并按上面的说明进行搜索。