Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.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
Javascript java mongodb中具有数组的聚合和匹配字段_Javascript_Java_Arrays_Mongodb_Mongodb Query - Fatal编程技术网

Javascript java mongodb中具有数组的聚合和匹配字段

Javascript java mongodb中具有数组的聚合和匹配字段,javascript,java,arrays,mongodb,mongodb-query,Javascript,Java,Arrays,Mongodb,Mongodb Query,我有一个java中的users[]数组,其中包含一组users\u id。(用户={“2”,“3”}); 此外,我还有一个电影集,其中包含了用户对电影的评价 我想找到所有由阵列中的用户评分的电影,并按这些用户的评分总和排序,推荐top3。我在您的文档中做了一些修改,如 {u id:“12”, 名称:“喜剧”, 评级:[ {用户id:“1”,速率:5}, {用户id:“2”,速率:8}, {用户id:“3”,速率:4} ] } 试试这个 聚合([{$unwind:$rating”},{$group

我有一个java中的users[]数组,其中包含一组users\u id。(用户={“2”,“3”}); 此外,我还有一个电影集,其中包含了用户对电影的评价


我想找到所有由阵列中的用户评分的电影,并按这些用户的评分总和排序,推荐top3。

我在您的文档中做了一些修改,如

{u id:“12”, 名称:“喜剧”, 评级:[ {用户id:“1”,速率:5}, {用户id:“2”,速率:8}, {用户id:“3”,速率:4} ] }

试试这个

聚合([{$unwind:$rating”},{$group:{{{U id:$U id],评级:{$sum:$rating.rate”}},{$sort :{“评级”:-1}}])


我对你的文档做了一些修改,比如

{u id:“12”, 名称:“喜剧”, 评级:[ {用户id:“1”,速率:5}, {用户id:“2”,速率:8}, {用户id:“3”,速率:4} ] }

试试这个

聚合([{$unwind:$rating”},{$group:{{{U id:$U id],评级:{$sum:$rating.rate”}},{$sort :{“评级”:-1}}])


“速率”字段是字符串,这意味着聚合框架不能对它们求和,除非它们是数值。还不清楚您的目的是汇总所有匹配用户的所有评分,还是单独汇总每个用户的评分。我已将“评分”字段编辑为“非字符串”。我想对所有匹配用户的所有收视率进行汇总,然后返回总收视率最高的前三部电影。例如:这里它应该将用户2和3的评级相加,即8+4。您的“评级”字段是字符串,这意味着聚合框架不能将它们相加,除非它们是数值。还不清楚您的目的是汇总所有匹配用户的所有评分,还是单独汇总每个用户的评分。我已将“评分”字段编辑为“非字符串”。我想对所有匹配用户的所有收视率进行汇总,然后返回总收视率最高的前三部电影。例如:这里它应该将用户2和3的评级相加,即8+4。
movies:{_id:"12",
      name:"comedy",
      rating:[{
        {user_id:"1",rate:5},
        {user_id:"2", rate:8}, 
        {user_id:"3",rate:4}
             }]
      }