如何只为一个实体求一个字段?

时间:2017-05-05 03:21:40

标签: mongodb

我有一个实体“分类帐”,我需要总结,但仅限一个用户。以下是我所拥有的,即将开始工作的内容。但是,它为每个用户“user_id”汇总它们。我有成千上万的用户,每个user_id有数千个分类帐。我需要找到一个特定用户的平均值。

实体:

用户“_id” 分类帐“user_id”

    db.ledgers.aggregate(
       [
         {
           $group:
             {
               _id: "$user_id",
               avgAmount: { $avg: "$amount_in_cents" }
             }
         }
       ]
    )

1 个答案:

答案 0 :(得分:1)

首先过滤user_id,然后执行分组

db.ledgers.aggregate(
   [
     {$match: {user_id: '<USER_ID>', amount_in_cents: {$gt: 2800}}},
     {
       $group:
         {
           _id: "$user_id",
           avgAmount: { $avg: "$amount_in_cents" }
         }
     }
   ]
)