【发布时间】:2018-02-23 21:34:35
【问题描述】:
我目前正在为各种比赛处理一组游戏内事件。在游戏中可以杀死敌人并在商店购买物品。
我现在一直在尝试做的,是计算在每次购买活动之前单场比赛中发生的击杀次数。
{
"_id" : ObjectId("5988f89ae5873exxxxxxx"),
"gameId" : NumberLong(2910126xxx)
"participantId" : 3,
"type" : "ITEM_PURCHASED",
"timestamp" : 656664 },
{
"_id" : ObjectId("5988f89ae5873exxxxxxx"),
"gameId" : NumberLong(2910126xxx)
"participantId" : 3,
"victimId" : 9,
"type" : "ENEMY_KILLED",
"timestamp" : 745245 },
{
"_id" : ObjectId("5988f89ae5873exxxxxxx"),
"gameId" : NumberLong(2910126xxx)
"participantId" : 3,
"victimId" : 7,
"type" : "ENEMY_KILLED",
"timestamp" : 746223 },
{
"_id" : ObjectId("5988f89ae5873exxxxxxx"),
"gameId" : NumberLong(2910126xxx)
"participantId" : 3,
"type" : "ITEM_PURCHASED",
"timestamp" : 840245 },
这是我想要的结果:
{
"_id" : ObjectId("5988f89ae5873exxxxxxx"),
"gameId" : NumberLong(2910126xxx)
"participantId" : 3,
"type" : "ITEM_PURCHASED",
"timestamp" : 656664,
"kills": 0 },
{
"_id" : ObjectId("5988f89ae5873exxxxxxx"),
"gameId" : NumberLong(2910126xxx)
"participantId" : 3,
"type" : "ITEM_PURCHASED",
"timestamp" : 840245 ,
"kills": 2 }
虽然我倾向于认为这是不可能的,但我对 mongo 提供的所有功能还没有那么熟练。
有没有办法在购买事件出现之前计算某些值的出现次数?
【问题讨论】:
标签: mongodb mapreduce aggregation-framework cumulative-sum