Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
502 views
in Technique[技术] by (71.8m points)

node后台+mongodb,有一个统计歌曲播放量的需求,想知道应该如何设计这个model

初步设想是model里面的字段有

 song: {//歌曲ID
        type: Schema.Types.ObjectId,
        ref: "song"
    }, 
    sum: {//播放量
        type: Number,
        default: 0
    },
    date: {//时间
        type: Date,
        default: new Date()
    }

我的问题是,如果我要分别统计一周内和一个月内的某首歌的播放量,我要怎么设计这个date,或者是要再添加一个model吗


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)
  1. 既然需要 一周或者一月 细粒度的播放量,所以播放量的统计肯定需要单独记录,但是细粒度也不能太低,每一次都记录一下,可以采用每一天的数据保存为一个文档,后端程序判断是不是同一天
"songID": "",
"count": 12,
"date":""
  1. 但是总播放量的请求频次也很高,所以当有播放量的时候同时更新两张表, 总播放量+1,当日播放量+1
  2. 既然都可以每一天+1,那是不是也可以同时存储 周&月的播放量,避免每一次查询周月还要计算
"songID": "",
"date":"按月新建文档",
"daliy":[1,5,8,10,12],
"week":[16,99],
"count": 100

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to WuJiGu Developer Q&A Community for programmer and developer-Open, Learning and Share
...