如何在mongodb中分组数据并获取所有字段

如何在mongodb中分组数据并获取所有字段,mongodb,mongoose,mongodb-query,aggregation-framework,Mongodb,Mongoose,Mongodb Query,Aggregation Framework,我在mongodb中有一个集合,希望通过修改对发票进行分组,并获取这些对象中的所有字段 { modified: "11/02/2020", stocks: [ { product:{ name:"Milk", price: 20 } quantity: 2,

我在mongodb中有一个集合,希望通过修改对发票进行分组,并获取这些对象中的所有字段

{ 
   modified: "11/02/2020",
   stocks: [
             {
              product:{
                 name:"Milk",
                 price: 20
              }
              quantity: 2,
              paid: true
            }
          ]
},
{ 
  modified: "10/02/2020",
  stocks: [
             {
              product:{
                 name:"Sugar",
                 price: 50
              }
              quantity: 1,
              paid: false
            }
   ]
 },
 { 
   modified: "10/02/2020",
   stocks: [
             {
              product:{
                       name:"Butter",
                       price: 10
                    }
              quantity: 5,
              paid: false
            }
        ]
   }
所以我试着:

  db.collection.aggregate([{
        $group: {
          _id: "$modified",  
          records: { $push: "$$ROOT" } 
        }
     }
  ])
但它在被推送到生成重复记录的修改器字段上重新聚集

Demo-

使用


输出

[
  {
    "_id": "A",
    "records": [
      {
        "_id": ObjectId("5a934e000102030405000000"),
        "grade": "A",
        "name": "John",
        "subject": "English"
      },
      {
        "_id": ObjectId("5a934e000102030405000001"),
        "grade": "A",
        "name": "John1",
        "subject": "English"
      }
    ]
  },
  {
    "_id": "B",
    "records": [
      {
        "_id": ObjectId("5a934e000102030405000002"),
        "grade": "B",
        "name": "JohnB",
        "subject": "English"
      },
      {
        "_id": ObjectId("5a934e000102030405000003"),
        "grade": "B",
        "name": "JohnB1",
        "subject": "English"
      }
    ]
  }
]

添加您的示例数据和QueryTanks,但如何执行查询是我实际要求的,它与以前的数据一起工作,但当我使用上面的数据集再次运行它时,它会在记录中修改的字段上重新运行聚合循环,从而duplicates@yaxx你说复制品是什么意思??
[
  {
    "_id": "A",
    "records": [
      {
        "_id": ObjectId("5a934e000102030405000000"),
        "grade": "A",
        "name": "John",
        "subject": "English"
      },
      {
        "_id": ObjectId("5a934e000102030405000001"),
        "grade": "A",
        "name": "John1",
        "subject": "English"
      }
    ]
  },
  {
    "_id": "B",
    "records": [
      {
        "_id": ObjectId("5a934e000102030405000002"),
        "grade": "B",
        "name": "JohnB",
        "subject": "English"
      },
      {
        "_id": ObjectId("5a934e000102030405000003"),
        "grade": "B",
        "name": "JohnB1",
        "subject": "English"
      }
    ]
  }
]