mongodb - 获取 mongodb 中不同字段值条件虎钳的计数
问题描述
我正在使用以下聚合查询来获取我的集合中的字段数。
Worksheet.aggregate([
{
"$group": {
"_id": null,
"todayBilling": {
"$sum": {
"$cond": [{ "$and" : [ {"$eq": [ "$isBilling", true]}, {$eq: [ "$date",new Date(moment().format('l'))] } ]},"$hours",0]
}
},
"todayProjects":{
"$sum": {
"$cond": [{ $eq: [ "$date",new Date(moment().format('l'))] },1,0]
}
}
}
}
])
以下是我的工作表集合:
/* 1 */
{
"_id" : ObjectId("5c34d84926471a1ce0d3103c"),
"isBilling" : true,
"isActive" : true,
"reportSent" : false,
"projectId" : ObjectId("5c34d81d26471a1ce0d3103b"),
"hours" : 6,
"date" : ISODate("2019-01-07T12:00:00.000-06:30"),
}
/* 2 */
{
"_id" : ObjectId("5c34d8d226471a1ce0d3103e"),
"isBilling" : true,
"isActive" : false,
"reportSent" : false,
"projectId" : ObjectId("5c34d81d26471a1ce0d3103b"),
"hours" : 3,
"date" : ISODate("2019-01-07T12:00:00.000-06:30"),
}
现在,我在两个文档中都有相同的 projectId,并且todayProjects
给了我2,但是如果项目 id 与以前的相同,我不想求和。
下面是我想要的输出:
{
todayBilling: 6(it is calculating current date vise)
todayProjects: 3(it should be calculate current date vise)
}
解决方案
推荐阅读
- d3.js - D3 data() 调用不会触发元素上的 exit() 但 enter() 有效
- javascript - 尝试访问 json 内容并以网格方式显示
- python - Keras:从自定义生成器中获取单个批次
- jenkins - Jenkins 围绕管道共享库脚本触发包装器
- opencart - 如何在 Opencart 前端接收模块 ID
- python - 通过每组两个数据元素创建行的有效方法是什么?
- groovy - 在 groovy 中使用带反斜杠的 sed
- distance - 距离采样代码,出现我不知道如何解决的错误
- powershell - 我在尝试运行 powershell 脚本时遇到错误 - 意外的令牌
- python-3.x - 如何将 python 控制台输出嵌入到 wxPython