Node.js 如何从MongoDB中的一个集合字段和一个集合填充字段中获取百分比?
我有一个集合,其中一个字段带有数字,并且在该集合中填充了ObjectId,其中还有一个字段带有数字。看起来像这样: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
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)上执行即可。因为我们不知道您是如何填充表的,所以我们不能说您如何在那里填充表。你想知道如何在途中做到这一点吗?