首页 > 解决方案 > 每天计算价值。帮帮我,我是新手

问题描述

我如何查询 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
 }

标签: node.jsmongodb

解决方案


您可以使用$group

db.collection.aggregate([
  {
    $group: {
      _id: "$date",
      statusA: {
        $sum: {
          $cond: [
            { $eq: [ "$status","A"] },
            1,
            0
          ]
        }
      },
      statusB: {
        $sum: {
          $cond: [
            { $eq: [ "$status", "B" ]},
            1,
            0
          ]
        }
      }
    }
  }
])

工作Mongo游乐场


推荐阅读