首页 > 解决方案 > 用于单独查询的节点 Mongoose 单独索引

问题描述

我们可以为同一个集合上完全独立的查询创建完全独立的索引吗?

我想要一个有效的查询,让用户使用这样的索引检索他们的活动

index{ userDBID: 1 }

示例查询

ActivityModel.find({ userDBID }).lean();

我想要对整个应用程序统计信息进行单独的有效查询,该统计信息也可以获取活动,但需要使用单独的复合索引,像这样

index{season: 1, matchID: 1}

示例查询

ActivityModel.find({ season, matchID }).lean()
ActivityModel.find({ season }).lean();

我发现很难找到可靠的高质量答案。我知道 hint() 似乎是一个解决方案,但我对此持怀疑态度。

丹尼尔

标签: node.jsmongodbindexing

解决方案


当然可以。

您可以添加:

schema.index({ userDBID: 1 });
schema.index({ season: 1, matchID: 1 });

在您的架构声明之后,在使用mongoose.model('Model', schema);.

您将看到(一段时间后)在数据库中添加的新模式。如果您使用像这样的检查工具,MongoDB Compass您甚至会有视觉表示。

我在生产应用程序中有效地使用它,所以我确定这一点(只是今天的用法):

http://prntscr.com/qj1n2o


推荐阅读