当前位置: 首页 > 知识库问答 >
问题:

聚合计数逻辑值

龙弘盛
2023-03-14

您好,朋友,我对mongodb聚合不友好,我想要的是,我有一个对象数组,其中包含每个问题的主题分数,我使用的是节点js,所以我想要的是,如果可能的话,使用mongo查询进行完整计算,包括主题名称及其总分和尝试次数,不尝试我的Json数组如下

{
    "examId": ObjectId("597367af7d8d3219d88c4341"),
    "questionId": ObjectId("597368207d8d3219d88c4342"),
    "questionNo": 1,
    "subject": "Reasoning Ability",
    "yourChoice": "A",
    "correctMark": "1",
    "attempt": true,
    "notAttempt": false,
}

在对象中,一个字段用于正确标记主题不同,我希望输出如下

|Subject Name | Total attempts | total not attempts | total score |
| A           | 5              | 3                  | 10          |
| B           | 10             | 5                  | 25          |

我正在尝试聚合,但尚未完成我已尝试此查询

db.examscores.aggregate([
  { $group:{
    _id:"$examId",
    score: { $sum: '$correctMark' },
    count: { $sum: 1 }
  }}
])

任何人都知道如何实现这种类型的输出。而如果用另一种方式来实现这个使用节点也比好。

共有1个答案

闾丘卓
2023-03-14

我已经解决了这个问题这是我的疑问

[
 { $match: { subject:'Reasoning Ability' } },
 {
   $group:
     {
       _id:{id:"$examId",subject:'$subject'},
       totalAttempt: { $sum:  {$cond : [ "$attempt", 1, 0 ]} },
       totalNotAttempt: { $sum:  {$cond : [ "$notAttempt", 1, 0 ]} },
       markedForReview:{ $sum:  {$cond : [ "$markedForReview", 1, 0 ]} },
       answerAndMarkedForReview:{ $sum:  {$cond : [ "$answerAndMarkedForReview", 1, 0 ]} },
       score: { $sum: '$correctMark' },
       count: { $sum: 1 }
     }
 }

]

 类似资料:
  • 主要内容:前言,谁适合阅读本教程,Cat Me,矫情箴言前言 本教程主要讲述 Verilog 完成数字 IC 设计(数字集成电路设计,Digital Integrated Circuit Design) 时涉及的一些知识,更加注重数字电路安全、稳定、方便的实现。将该教程理解为 《Verilog 教程》的高级篇,也再适当不过。 内容主要包括:底层(1章 门级建模、2章 用户自定义原语 UDP、9章 逻辑综合)、时序(3章 时序分析)、优化(4章 同步与异

  • 基本上,我已经启动了状态生成事务的流程,涉及3方: PartyA-ourIdentity PartyB-应该签名 PartyC-应该签名 启动流创建新状态并构建事务,然后从其他方收集签名。 PartyB和PartyC应该进行自己的特定业务逻辑验证。 如果不正确,将这些检查放在流响应器中是否正确-将它们放在哪里? 此外,我可以单独的响应器代码,例如:

  • 本教程经常有提及综合这个词语。或者说有些逻辑不能综合成实际电路,或者说有些逻辑设计综合后的电路会有一些安全隐患。本章就简单介绍下逻辑综合的相关知识,仅从理论层次和普遍认知的角度来阐述。待那个懵懂求知少年变成中年秃顶大叔,再来介绍逻辑综合的具体实践。好像也没有多少时日了(手动狗头)。 基本概念 综合,就是在标准单元库和特定的设计约束基础上,把数字设计的高层次描述转换为优化的门级网表的过程。标准单元库

  • 主要内容:实例与非门实例 组合逻辑 UDP 中,状态表规定了不同的输入组合和相对应的输出值,没有指定的任意组合输出值为 x。 一个简单的与非门 UDP 可以表示如下: primitive nand_my (out , a , b ) ;     output       out ;     input        a , b ;     table     //a         b       :    

  • 问题内容: 我将此数据插入了Elasticsearch: 旁注:重现: 1)下载:http://wmo.co/20160928_es_query/bulk.json 2)执行:卷曲-s -XPOST ‘ 的http://本地主机:9200 /测试/外部/ _bulk漂亮 ‘ -数据二进制@ bulk.json 问题: 获取每个“位置”有多少记录的计数。 解决方案1:存储桶聚合..没有得到期望的结果

  • 统计 BuguDao提供如下常用的统计功能,它们都是基于Aggregation实现的。 /* 求最大值 */ public double max(String key) public double max(String key, BuguQuery query) /* 求最小值 */ public double min(String key) public double min(Stri