Mongodb按分组字段索引

时间:2015-06-09 18:57:48

标签: mongodb mongoose mongodb-query database

我一直在做Mongo DB大学课程,并开始更多地关注我们的应用程序索引;我们有一个使用以下字段的常见查询的碰撞:

_id:string,stats(schema).created_by:string,list(schema).user_id:string,deleted:false

架构示例:

var listSchema = schema({
    user_id: {type: String, trim: true},
    email: {type: String, trim: true}
}, {_id: false, versionKey: false});    

var modelSchema = schema({
   name: {type: String, trim: true, required: true},
   stats: {
          created_by: String,
          updated_at: {type: Date, default: new Date()},
   },
   deleted: {type: Boolean, default: false},
   list: [listSchema],
   other....
})

最常见的查询如下所示:

var queryParams = {
        _id: projectId,
        $and: [
            {
                $or: [
                    {'stats.created_by': userId},
                    {'list.user_id': userId}
                ]
            }
        ],
        deleted: false
    };
    // Fire the request to find an object based on the above queryParams
    ModelObject.findOne(queryParams....

问题是,这里使用的最佳索引配置是什么,集合是一体的。 这是由上述字段创建组索引的问题吗? _id已经编入索引,可以在这里重复使用!!! $和$或有影响吗?

modelSchema.index({'_id': 1, 'stats.created_by': 1, 'list.user_id': 1, 'deleted': 1});

任何建议,最佳实践都将在这里受到赞赏。

感谢。

Ĵ

0 个答案:

没有答案