MongoDB聚合:计算每个唯一/不同的值

时间:2018-02-20 08:04:21

标签: javascript mongodb mongoose aggregation-framework

我从集合

获得了这个数据集
  val upload1 = path("api" / "upload1") {
    extractClientIP {
      ip =>
        optionalHeaderValueByName("tmp") {
          auths =>
            (post & extractRequestContext & entity(as[String])) { (requestContext, create) =>
              // do stuff
              complete("ok")
            }
        }
    }
  }

来自代码:

{
    item: 124001
    price: 6
},
{
   item: 124001
   price: 6
},
{
   item: 124121
   price: 16
},
{
    item: 124121
    price: 13
},
{
   item:n
   price: x
}

问题就在它之后,在$ group阶段。例如,我想为每个独特/不同的项目获得$ min,$ max或$ avg'price'。

当我尝试使用时:

let INDX = [xxx,xxx,xxx,xxx, ..n]
auctions.aggregate([
    {
        $match: { item: { $in: INDX }}
    }

我从所有数据中只收到$ min,

{
    $group: {
        min_1: { $min: "$price",}
    }
}

但是我需要这样的东西:

[ { _id: 0, min_1: 0 } ]

1 个答案:

答案 0 :(得分:0)

好的,这是一个简单的答案:

请不要忘记_id字段并在$ group阶段使用它,就像:

{ _id: 124119, min_1: 66500 },
{ _id: 124437, min_1: 26398 }