Node.js 每天计算价值。帮帮我,我';我是新手
我如何查询mongodb是否如此。。谢谢Node.js 每天计算价值。帮帮我,我';我是新手,node.js,mongodb,Node.js,Mongodb,我如何查询mongodb是否如此。。谢谢 { status: A date: 1/1 }, { status: A date: 1/1 } { status: B date: 1/1 } { status: B date: 2/1 } { status: B date: 5/1 } 结果: { date: 1/1, statusA: 2, statusB: 1 } {
{
status: A
date: 1/1
},
{
status: A
date: 1/1
}
{
status: B
date: 1/1
}
{
status: B
date: 2/1
}
{
status: B
date: 5/1
}
结果:
{
date: 1/1,
statusA: 2,
statusB: 1
}
{
date: 2/1,
statusA: 0,
statusB: 1
}
{
date: 3/1,
statusA: 0,
statusB: 0
} {
date: 4/1,
statusA: 0,
statusB: 0
}
{
date: 5/1,
statusA: 0,
statusB: 1
}
您可以使用
$group
db.collection.aggregate([
{
$group: {
_id: "$date",
statusA: {
$sum: {
$cond: [
{ $eq: [ "$status","A"] },
1,
0
]
}
},
statusB: {
$sum: {
$cond: [
{ $eq: [ "$status", "B" ]},
1,
0
]
}
}
}
}
])
工作您可以使用
聚合
管道API:
根据日期对元素分组
,同时根据$eq
条件结果,使用$sum
1或0对状态A/B进行计数
project
根据日期将结果重命名为\u id
(正如您在示例中所预期的那样)
db.collection.aggregate()
.组({
_id:“$date”,
状态a:{$sum:
{$cond:[{$eq:[“$status”,“A”]},1,0]}
},
状态B:{$sum:
{$cond:[{$eq:[“$status”,“B”]},1,0]}
}
})
.项目({
日期:“$\u id”,
状态A:1,
状态B:1,
_身份证号码:0
});
您的答案很好,但如何获取其缺少的天数和空值。?谢谢你的回答很好,但是我怎么才能得到它缺失的天数和空值呢。?谢谢你没有显示任何缺失或空值