【发布时间】:2018-01-23 13:18:48
【问题描述】:
我正在尝试获取超出我能力范围的 Mongo 3.0 查询。希望能得到一点帮助。基本上,我的数据库有转录记录,其中有一个给定的username、project_id、expedition_id 和finished_date。这些是我感兴趣的领域。一个项目将有多个探险,每个探险都有多个转录。
我想在给定项目的统计信息页面中显示给定用户的信息。显示内容包括用户名、用户为整个项目提交的项目转录总数、参与的探险总数、用户在整个项目中参与的探险次数,以及用户实际执行转录的最后日期。
到目前为止,通过使用user_name 上的计数并匹配project_id,很容易获得项目总转录数
db.transcriptions.aggregate([
{ "$match" : {"projectId" => 13}},
{ "$group": {
"_id": "$user_name",
"transcriptionCount" : {"$sum" : 1 }
}
}
])
每个转录文档都有一个expeditionId 字段(4、7、9、10 等)和finished_date。因此,如果用户执行了 100 次转录,仅参与了探险 7 和 10,则参与的探险总数 = 2
最后一个finished_date 是显示用户最后一次执行转录的日期。返回记录示例:
user_name: john smith
transcriptionCount: 100
expeditionCount: 2
last_date: 2017-08-15
希望我解释得足够好。将不胜感激。
【问题讨论】:
标签: mongodb mongodb-query aggregation-framework