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
Node.js 如何从MongoDB中的一个集合字段和一个集合填充字段中获取百分比?_Node.js_Express_Mongoose - Fatal编程技术网

Node.js 如何从MongoDB中的一个集合字段和一个集合填充字段中获取百分比?

Node.js 如何从MongoDB中的一个集合字段和一个集合填充字段中获取百分比?,node.js,express,mongoose,Node.js,Express,Mongoose,我有一个集合,其中一个字段带有数字,并且在该集合中填充了ObjectId,其中还有一个字段带有数字。看起来像这样: router.get('/', (req, res) => { VoterTurnout.find({}) .sort({turnoutByHour: 1}) .populate('electoralUnit') .then(voterTurnouts => { ElectoralUnit.find({}) .th

我有一个集合,其中一个字段带有数字,并且在该集合中填充了ObjectId,其中还有一个字段带有数字。看起来像这样:

router.get('/', (req, res) => {
  VoterTurnout.find({})
    .sort({turnoutByHour: 1})
    .populate('electoralUnit')
    .then(voterTurnouts => {
      ElectoralUnit.find({})
        .then(electoralUnits => {
                res.render('home/voterTurnouts/index', {
                  voterTurnouts: voterTurnouts,
                  electoralUnits: electoralUnits
              });
        });
    });
});
{“投票人id”:“5abe65e298002b2334bb1470”,“选民信息”:“5ab906612f30fe23dc592591”,“投票时间”:“08:00”,“投票人”:10,“安全选民”:5”,“投票人:0}

{“_id”:“5ab906612f30fe23dc592591”,“镇”:“5ab903952e9dc70408a81e32”,“名称”:“某物”,“_v”:0,“选民号码”:4200,“安全选民”:360}

我的路线是这样的:

router.get('/', (req, res) => {
  VoterTurnout.find({})
    .sort({turnoutByHour: 1})
    .populate('electoralUnit')
    .then(voterTurnouts => {
      ElectoralUnit.find({})
        .then(electoralUnits => {
                res.render('home/voterTurnouts/index', {
                  voterTurnouts: voterTurnouts,
                  electoralUnits: electoralUnits
              });
        });
    });
});
视图:


{{{#每个Voterturns}
{{turnoutByHour}
{{votertropper}}({Math.floor(votertropper*100/electoralUnit.electoralNumber)}%)//这不起作用
{{safeVoter}}
{{/每个}}

我读了一些关于mongodb聚合的文章,但是找不到一些可以帮助我解决这个问题的例子。。。有什么帮助吗?

我是用车把定制助手完成的。我在google Handlebar自定义帮助程序中添加了一点内容并对其进行了编辑:

math: function(lvalue, operator, rvalue, options) {

    lvalue = parseFloat(lvalue);
    rvalue = parseFloat(rvalue);

    return {
        "+": lvalue + rvalue,
        "-": lvalue - rvalue,
        "*": lvalue * rvalue,
        "/": lvalue / rvalue,
        "%": Math.floor((lvalue / rvalue) * 100)
    }[operator];

}
然后导出数学值以查看并添加此把手:

{{math votertropper“%”electoralUnit.electoralNumber}}%


它正在工作。

您希望百分比显示在mongodb或您的表格中吗?我需要在表格中。您使用什么来绘制表格?你是怎么做到的?我想你应该在runtimeSorry上计算UI上的百分比,我会在你阅读后编辑文本。在那里,我已经有了voterturnouts集合中的数字,但没有选民号码。我假设我需要在路线上做数学运算,然后把变量放在视图中。不要在路线上做。您将需要处理所有文档。只需在UI(HTML/js)上执行即可。因为我们不知道您是如何填充表的,所以我们不能说您如何在那里填充表。你想知道如何在途中做到这一点吗?