何时用猫鼬编制索引

时间:2018-12-30 02:30:31

标签: node.js mongodb express indexing mongoose

所以我知道索引可以使查询更快,但是我不知道如何确定应该和不应该对什么进行索引。例如我在看这个

var FavoriteSchema = new Schema({
	user: {
        type: ObjectId,
        ref: 'User',
        required: true,
        index: true,
    },
    business: {
        type: ObjectId,
        ref: 'Business',
        required: true,
        index: true,
    },
    isDeleted: {
            type: Boolean,
            required: false,
            default: false,
    },

我注意到用户和企业具有index:true,但isDeleted没有,但是为什么呢?我还想知道以这种方式建立索引如何加快查询速度?

1 个答案:

答案 0 :(得分:1)

摘自文档:

  

没有索引,MongoDB必须执行集合扫描,即扫描集合中的每个文档,以选择与查询语句匹配的那些文档。如果存在用于查询的适当索引,则MongoDB可以使用该索引来限制它必须检查的文档数。

在此处了解更多信息:

您要查询集合中具有特定用户ID的文档吗?可能是的,因此您应该为此创建索引。

您要查询集合中具有特定isDeleted值的文档吗?如果是,请为此创建索引。如果不是,或者只是有时,则不要创建索引。