mongoose - 通过聚合组合数据

时间:2017-11-17 14:46:31

标签: javascript node.js mongodb mongoose

我有这样的数据:

[
  { _id: ..., class: 'A', name: 'John Doe' },
  { _id: ..., class: 'A', name: 'John Snow' },
  { _id: ..., class: 'B', name: 'Joan Doe' },
  ...
]

我需要有一个mongoose的聚合数据,结果如下:

[
  { class: 'A', students: [
    { _id: ..., name: 'John Snow' },
    { _id: ..., name: 'John Doe' }
   ]},
  ...
]

如何在mongoose中进行聚合?

1 个答案:

答案 0 :(得分:0)

汇总管道看起来像这样,

[
    {
        $group: {
        _id:{ class: "$class" },
        students:{$push:{_id:"$_id", name:"$name"}}
    }
]

我相信猫鼬你会做类似的事情:

Model.aggregate({
        $group: {
        _id:{ class: "$class" },
        students:{$push:{_id:"$_id", name:"$name"}}
    })
.exec(callback)