Javascript MongoDB aggregate().$unwind

Javascript MongoDB aggregate().$unwind,javascript,mongodb,Javascript,Mongodb,我有一些看起来像这样的数据(不是真实数据): 我正在尝试解开报价单和订单数组,并获得生产中所有订单的投影,其中包括每个订单的客户名称、供应商名称和订单日期 我的问题是: db.customers.aggregate([ { $unwind: "$quotations" }, { $unwind: "$quotations.orders" }, { $match: { 'quotations.orders.status': 'INPROD' } }, {

我有一些看起来像这样的数据(不是真实数据):

我正在尝试解开报价单和订单数组,并获得生产中所有订单的投影,其中包括每个订单的客户名称、供应商名称和订单日期

我的问题是:

 db.customers.aggregate([
    { $unwind: "$quotations" },
    { $unwind: "$quotations.orders" },
    { $match: { 'quotations.orders.status': 'INPROD' } },
    {
    $project: {
        name: 1,
            supplier_ref: "$quotations.supplier_ref",
            order_id: "$quotations.orders._id",
            order_date: "$quotations.orders.order_date"
            }     
    },
    {
        $group: {
            _id: "$order_id"
        }

    }
], function (err, results) {
console.log(results);
})
查询运行成功,但只提供订单ID,而不提供任何其他所需字段。我错过了什么

编辑

我希望能有这样的结果:

 "result": [
  {
    "_id" : "orderid01",
    "name" : "Joe Bloggs",
     "supplier_ref" : "A1234",
     "date_ordered" : "2012-04-14"
  },
  {
    "_id" : "orderid02",
    "name" : "Joe Bloggs",
     "supplier_ref" : "A1235",
     "date_ordered" : "2012-04-16"
  }
]
当我向“group”函数添加一个额外字段时,如下所示:

    $group: {
        _id: "$order_id", 
        supplier_ref: "$supplier_ref"

    }

我得到错误:“组聚合字段‘supplier_ref’必须定义为对象内的表达式”。我是否必须以某种方式将其与结果对象关联?

删除组函数会产生我想要的结果。

您希望返回什么(可能对您的问题进行编辑)。但是当在
订单id
上进行这一级别的“分组”时,不可能返回更多其他内容。这同样适用于其他数据存储。如果您想查看其他字段,请将这些字段添加到Neil提到的$group部分编辑以进一步澄清我的问题,谢谢您的输入
    $group: {
        _id: "$order_id", 
        supplier_ref: "$supplier_ref"

    }