Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.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

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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.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
Node.js monogdb使用count分组后获得获胜百分比_Node.js_Mongodb_Express_Mongoose_Mongojs - Fatal编程技术网

Node.js monogdb使用count分组后获得获胜百分比

Node.js monogdb使用count分组后获得获胜百分比,node.js,mongodb,express,mongoose,mongojs,Node.js,Mongodb,Express,Mongoose,Mongojs,我有数据 {"id" :1,"win":100}, {"id" :1,"win":150}, {"id" :1,"win":10}, {"id" :1,"win":0}, {"id" :2,"win":100}, {"id" :2,"win":0}, {"id" :3,"win":100}, {"id" :3,"win":200}, 我需要找到每个id的获胜百分比; 预期产量 id: 1 winper:75 id: 2 winper:50 id: 1 winper:100 to

我有数据

{"id" :1,"win":100},
{"id" :1,"win":150},
{"id" :1,"win":10},
{"id" :1,"win":0},
{"id" :2,"win":100},
{"id" :2,"win":0},
{"id" :3,"win":100},
{"id" :3,"win":200},
我需要找到每个id的获胜百分比; 预期产量

id: 1 winper:75
id: 2 winper:50
id: 1 winper:100

       totalwin  is no. of greatethan zero win
        totalnotwin  is no. equal to zero win
我得到了下面的问题

 db.winn.aggregate([
{
$group: { _id: "$id",
 totalnotwon: { 
         $sum:
                 { $cond: [ { $lte: [ "$win", 0 ] }, 1, 0] }
        } 
        ,
     totalwin: { 
     $sum:
     { $cond: [ { $gt: [ "$win", 0 ] }, 1, 0] }
     } 
    }
}

],function (err, result) {
    console.log(result);
    res.json(result);
});
}))

我得到了结果

我是totlwon totlanotwon 1 3 1 2 1 1 3200

我需要计算一下获胜的可能性 预期 id totlwon totlanotwon% 1 3 1 75 2 1 1 50 3200100


win%逻辑(100/(totlwon+totalnotwon))*totalwon

请尝试此查询,它可能会根据您的公式给出结果:

(100/(totalwon+totalnotwon))*totalwon
查询:

db.demo.aggregate([
  {
    $group: {
      _id: '$id',
      total: { $sum: '$win' },
      totalnotwon: {
        $sum: { $cond: [{ $lte: ['$win', 0] }, 1, 0] },
      },
      totalwon: {
        $sum: { $cond: [{ $gt: ['$win', 0] }, 1, 0] },
      },
      total: { $sum: NumberInt(1) },
    },
  },
  {
    $project: {
      result: {
        $floor:{$multiply:[{ $divide:[100,'$total']},'$totalwon']}
      },
    },
  },
]);

我正在使用Mongojs模块,其显示的错误NumberPrint未声明,请通过删除NumberPrint来尝试“total:{$sum:1}”,为了更准确,我添加了NumberPrint。获取空响应是使用节点api调用此函数和quey。poject似乎无法访问Lawin colunmsresult没有id$floor:{$multiply:[{$divide:[100,$total']},$totalwon']}这给了我答案,非常感谢