我们可以为同一集合上完全独立的查询创建完全独立的索引吗?
我想要一个有效的查询用户检索他们的活动使用这样的索引
index{ userDBID: 1 }示例查询
ActivityModel.find({ userDBID }).lean();我想要一个单独的有效的查询整个应用程序的统计数据,这也获得活动,但需要使用一个单独的复合索引,像这样
index{season: 1, matchID: 1}示例查询
ActivityModel.find({ season, matchID }).lean()
ActivityModel.find({ season }).lean();我发现很难找到一个可靠的高质量的答案。我知道hint()似乎是一个解决方案,但我对此持怀疑态度。
丹尼尔
发布于 2020-01-04 04:39:19
你当然可以。
您可以只添加以下内容:
schema.index({ userDBID: 1 });
schema.index({ season: 1, matchID: 1 });就在您的模式声明之后,在使用mongoose.model('Model', schema);保存模型之前。
您将看到(在一段时间后)添加到DB中的新模式。如果您使用像MongoDB Compass这样的检查工具,您甚至会有一个直观的表示。
我在一个生产应用程序中有效地使用了它,所以我确信这一点(就是今天的用法):
http://prntscr.com/qj1n2o
https://stackoverflow.com/questions/59580200
复制相似问题