Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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 mongodb过滤结果分组_Ruby On Rails_Mongodb_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails mongodb过滤结果分组

Ruby on rails mongodb过滤结果分组,ruby-on-rails,mongodb,ruby-on-rails-4,Ruby On Rails,Mongodb,Ruby On Rails 4,我在rails中有一个mongo支持的联系人数据库。我正在使用过滤器报告多个复选框 例如: 我正在使用复选框过滤器 表名为转换 转换表中的列有:浏览器,日期,城市,州,国家,网络,语言 我正在为过滤器选择日期,城市,过滤后应根据过滤器进行分组 注意:第一个过滤器下一个仅分组 有时:日期,城市,国家对于筛选器,它将取决于用户 我只做了这个代码 Conversion.collection.aggregate([ { "$match" => { "date" => { '$

我在rails中有一个mongo支持的联系人数据库。我正在使用过滤器报告多个复选框

例如:

  • 我正在使用复选框过滤器
  • 表名为
    转换
  • 转换
    表中的列有:
    浏览器
    日期
    城市
    国家
    网络
    语言
  • 我正在为过滤器选择
    日期
    城市
    ,过滤后应根据过滤器进行分组
  • 注意:第一个过滤器下一个仅分组
  • 有时:
    日期
    城市
    国家
    对于筛选器,它将取决于用户
  • 我只做了这个代码

    Conversion.collection.aggregate([
       { "$match" => {
         "date" => { '$gte' => start_date, '$lte' => end_date }
         }
       },
       { "$group" => {
         "_id" => {
           "country" => "$country",
           "city" => "$city",
           "browser" => "$browser",
           "network" => "$network",
            "language" => "$language"
          }
        }
      },
    ])
    

    但这段代码每次都对所有列进行分组。我希望选中的复选框列只进行分组。为此,如何编写分组代码?有人能提出任何建议吗?

    首先根据复选框中选定的列创建一个对象,例如grouping={}。如果(…){grouping.country=“$country”;}。。。然后在组步骤中使用此对象:{$group=>{“\u id”=>grouping}