对MongoDB索引的build议

我有以下的MongoDB架构项目

  • ID
  • 标题:string
  • 描述:string
  • num_views:数字
  • num_likes:数字
  • num_unlikes:数字
  • val_trending:数字
  • val_rating:数字
  • 时间戳:编号

val_trending是根据num_views,num_likes,num_dislikes,时间戳

val_rating是根据num_likes,num_dislikes,timestamp的值来计算的

我必须根据num_views,val_trendingval_rating查询项目

  • Item.find().sort({val_trending:-1})。limit(20)
  • Item.find().sort({num_views:-1})。limit(20)

当用户查看时num_views,num_likes和num_unlikes被更新,因此项目相似不同

val_trending在用户视图时更新, 如同不同于 Item

val_rating在用户喜欢不同于 Item时更新

这是很多更新,这让我很担心。 我想索引num_views,val_trending和val_rating更快的结果。 但是这也会显示更新。

我将每秒钟多次查询项目,并且更新将更频繁地发生,因为在查看项目之后用户可能也喜欢或不同于项目。

所以,我的问题是:为了获得最佳性能,我应该做什么样的实现(索引)?

注意:数据库在启动时将保存大约10K个项目 ,并且每天都会增加。