Neo4j gem-根据参数值查询

它可能不像rails那么多neo4j。但是也许我错了

我正在寻找有关处理参数为特定值时的情况的建议。例如。在我的查询中

@friends_events = current_user.friends.events(:e, :rel).where("rel.admin = {admin_p} AND e.size_max < {size_p}", uuid: @event_id, primary_category: params[:primary_category] ).params(admin_p: true, size_p: params[:group_max].to_i)

事件的size_max属性可以是整数,也可以是any现在我有any一个空白值。基本上,如果他们选择了任何一个,我都需要在查询中一起忽略该参数(或以类似的方式处理)。作弊的一种方法是处理外部情况,如果选择了任何情况且该值是空白,则我将其手动设置为一个不会被击中的很高的数字。

不知道如何在查询内部或外部执行此操作,而现在没有奇怪的方法。有什么建议吗?

更新

我有你建议的查询。以及处理“验证”的方法

@friends_events = current_user.friends.events(:e, :rel).where("rel.admin = {admin_p} #{size_string}", uuid: @event_id, primary_category: params[:primary_category] ).params(admin_p: true, size_p: size_param)

然后我将更改为size_param不喜欢的空白。我希望能够处理这两种情况。例如,当您第一次点击页面时,参数为空,而当您提交时,则为空白。Nil将适用于方案1,而不适用于方案2。||在这里我需要一个案例吗?

        def size_string
          'AND e.size_max < {size_p}' if params[:group_max]
        end

        def size_param
            #has not taken in blank scenario
          params[:group_max].blank? ? false : params[:group_max].to_i
        end

在我看来,我有

<% if !@friends_events.blank? %>

我的错误是

Don't know how to compare that. Left: 0 (Long); Right: false (Boolean)在我看来,是从上面的行开始的。更改.blank?.nil?允许过滤器通过(尽管不正确)

颠倒的克里斯

您确定的处理方式似乎是最佳选择。在访问数据库之前对它进行评估可能需要做更多的工作,但是如果用户需要,可以完全省略该属性,从而提高性能any有人告诉我,使用>或<进行过滤不会使用索引,因此,如果您有足够的记录,可能会很慢。首先是这样的:

def where_this_happens
  @friends_events = current_user.friends.events(:e, :rel)
    .where("rel.admin = {admin_p} #{size_string}", uuid: @event_id, primary_category: params[:primary_category] )
    .params(admin_p: true, size_p: size_param)
end

def size_string
  'AND e.size_max < {size_p}' unless params[:group_max].blank?
end

def size_param
  params[:group_max].nil? ? false : params[:group_max].to_i
end

设置size_p参数和不使用它没有什么害处,但是我敢肯定,如果您喂它,它将对您吠叫nil

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

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

来自分类Dev

Neo4j gem-是否根据有效的关系检查每个对象?

来自分类Dev

Neo4j gem-是否根据有效的关系检查每个对象?

来自分类Dev

Neo4j gem-has_many的详细查询方向:两者

来自分类Dev

Neo4j gem-查询不存在的关系

来自分类Dev

Neo4j gem-has_many的详细查询方向:两者

来自分类Dev

Neo4j gem-查询不存在的关系

来自分类Dev

Neo4j gem-使用索引处理集合查询

来自分类Dev

查询Neo4j

来自分类Dev

用于Neo4j和Rails 4的认证gem?

来自分类Dev

Neo4j gem - Querying multiple parameters in one property

来自分类Dev

Neo4J gem关联和创建关系

来自分类Dev

Neo4j gem-更新关系属性方法

来自分类Dev

Neo4j gem-选择多个节点/关系

来自分类Dev

neo4j will_paginate gem安装问题

来自分类Dev

Neo4J gem datetime数据类型

来自分类Dev

rake db:seed is not working using neo4j gem

来自分类Dev

Neo4j gem - Updating relationship properties method

来自分类Dev

Neo4j gem undefined method'name'for CypherNode

来自分类Dev

Neo4j查询:条件匹配

来自分类Dev

Neo4J:高效的邻域查询

来自分类Dev

加速Neo4j密码查询

来自分类Dev

重写OrientDB的neo4j查询

来自分类Dev

Neo4j合并查询

来自分类Dev

Neo4j查询优化

来自分类Dev

neo4j查询的异常响应

来自分类Dev

Neo4j查询即兴

来自分类Dev

Neo4J和Cypher查询