同一集合上的MongoDB聚合

同一集合上的MongoDB聚合,mongodb,mongodb-query,aggregation-framework,Mongodb,Mongodb Query,Aggregation Framework,我需要从另一个文档中获取值,以下是我的示例文档: [ { "product_code": "0172745", "condition_type": "ZPRE", "price_group": "33", "visibility": "brp, network", "sales_org": "1010", "distr_channel": "10", "price_type": "dealer", "price_market":

我需要从另一个文档中获取值,以下是我的示例文档:

[
  {
    "product_code": "0172745",
    "condition_type": "ZPRE",
    "price_group": "33",
    "visibility": "brp, network",
    "sales_org": "1010",
    "distr_channel": "10",
    "price_type": "dealer",
    "price_market": "na",
    "valid_from": "2019-07-01",
    "valid_to": "9999-12-31",
    "price_price_uom": "5.30",
    "price_uom": "PC",
    "price_sales_uom": "12.90",
    "sales_uom": "PC",
    "currency": "CAD",
    "last_change_date": "2020-01-17T20:14:15"
    }
  },
  {
    "product_code": "0172745",
    "condition_type": "ZPBA",
    "price_group": "2R",
    "visibility": "brp, network",
    "sales_org": "1010",
    "distr_channel": "10",
    "price_type": "dealer",
    "price_market": "na",
    "valid_from": "2019-07-01",
    "valid_to": "9999-12-31",
    "price_price_uom": "5.30",
    "price_uom": "PC",
    "price_sales_uom": "5.300",
    "sales_uom": "PC",
    "currency": "CAD",
    "last_change_date": "2020-01-17T20:14:15"
  }
]
输出应为
文件2
+
价格销售计量单位
文件1
,聚合为
产品代码
条件类型

 {
    "product_code": "0172745",
    "condition_type": "ZPBA",
    "price_group": "2R",
    "price_sales_uom": "12.90"

  }

请尝试下面的查询,这将根据
产品\u code
对所有文档进行分组:

db.collection.aggregate([
    {
        $group: {
            _id: '$product_code', product_code: { $first: '$product_code' },
            condition_type: { $last: '$condition_type' },
            price_group: { $last: '$price_group' },
            price_sales_uom: { $max: '$price_sales_uom' }
        }
    }, { $project: { _id: 0 } }])

注意:在这个问题的给定状态下,此查询假设在匹配的文档上获得
价格销售计量单位
的最大值(如果必须来自第一个文档使用
$first
),类似地
条件类型
,从组中的最后一个文档中检索
价格组
,但是对于
产品而言,无论是
$first
还是
$last
,它们都是一样的。

你所说的
聚合是指产品代码和条件类型
?您需要什么样的基础
price\u sales\u uom
price\u group
?你的问题太令人困惑了!!
price\u sales\u uom
也是字符串的一种吗?请尝试下面的答案并让我们知道..这是否回答了您的问题?