首页 文章

使用$ lookup mongodb获取本地字段的计数

提问于
浏览
0

我想得到本地字段特定projectId vise的计数 . 例如我有以下文件:

{
   "_id" : ObjectId("5c0a4efa91b5021228681f7a"),
   "projectId" : ObjectId("5c0a4083753a321c6c4ee024"),
   "hours" : 8,
   "__v" : 0
}

{
   "_id" : ObjectId("5c0a4f4191b5021228681f7c"),
   "projectId" : ObjectId("5c0a2a8897e71a0d28b910ac"),
   "hours" : 6,
   "__v" : 0
}

{
   "_id" : ObjectId("5c0a4f4191b5021228681f7d"),
   "projectId" : ObjectId("5c0a4083753a321c6c4ee024"),
   "hours" : 2,
   "__v" : 0
}

现在,我想让projectId的小时字段数等于 5c0a4083753a321c6c4ee024 ,即10 .

Is it possible with $lookup?

1 回答

  • 2

    $lookup用于连接两个集合 . 在这里,您试图获得特定 projectId 的总计数 hours . 因此,您需要在此处使用$group .

    db.collection.aggregate([
      { "$match": { "projectId": mongoose.Types.ObjectId("5c0a4083753a321c6c4ee024") }}
      { "$group": {
        "_id": "$projectId",
        "totalHours": { "$sum": "$hours" }
      }}
    ])
    

相关问题