排行榜的猫鼬索引

时间:2018-12-09 07:35:04

标签: mongodb mongoose mongoose-schema

我有一个猫鼬模式,该模式具有多个排行榜的4个属性(每个排行榜均通过songId):

{
u: {
  type: String,
  unique: false,
  required: true,
  alias: 'userId'
},
n: {
  type: String,
  unique: false,
  required: true,
  alias: 'name'
},
s: {
  type: String,
  unique: false,
  required: true,
  alias: 'songId'
},
sc: {
  type: Number,
  unique: false,
  required: true,
  alias: 'score'
}
}

对于给定的songId,我应该检索前10位用户(按得分排序),对于给定的songId和userIds列表,我应检索该列表的前10位用户(按得分排序)。

这是我的索引:

Score.index({ u: 1, s: -1 }, { unique: true });
Score.index({ s: 1 }, { unique: false });

这分别是两个查询:

const worldPromise = Score.find({ s: songId }).sort({ sc: -1 }).limit(10).exec();
const friendsPromise = Score.find({ s: songId, u: { $in: friendsArr } }).sort({ sc: -1 }).limit(10).exec();

其中ids和sondId数组中的friendsArr是歌曲ID。

我的问题是我的查询是否被优化和正确索引,还是应该做一些不同的事情?

0 个答案:

没有答案