node.js - 每天计算价值。帮帮我,我是新手
问题描述
我如何查询 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
}
{
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
]
}
}
}
}
])
工作Mongo游乐场