mongoose使用随笔(一)

一、索引

//给数据设置索引是为了查询速度变快,如果有的数据不经常查询,可不设置索引,因为会增加数据添加的负担
//设置索引是在生成Schema中设置的
const Schema = mongoose.Schema({
    name:{
        required:true, //表示这个数据是否是必须输入
        type:String,
        max:10,最大值,用于Number
        min:1,最小值,用于Number
        enum:['connect','uncoonect'], //枚举类型,标识值只能是connect或者uncoonect,只能用于                
                                       //String类型中
        index:true, //创建索引。查询速度会非常快
        unique:true, //创建唯一索引,如果两个name值相同则会报错
        match:/^\d{11}$/, //输入的数据必须符合正则规则,用于String
        maxlength:20, //输入的最大长度,用于String
        minlength:10, //输入的最小长度用于String
        //自定义验证器,通过则可以增加数据,反之不能
        validate: function(desc) { 
            return desc.length >= 10;
        },
        set(val){ //自定义修饰符。可对即将存入数据库的数据进行再次加工
            return val
        }
    }

二、创建、删除、查看索引的命令

//创建索引,给name值创建一个索引
db.user.createIndex({name:1})
//创建唯一索引,此时name值是独一无二的,不能有相同的值出现
db.user.createIndex({name:1},{unique:true})

//查询集合的索引有哪些
db.user.getIndexes()

//删除索引
db.user.dropIndex({name:1})


//索引的一些参数:
/**
* background  Booleam 创建过程是否阻塞其他数据库操作,可选参数,默认值为false
* unique      Booleam 创建的索引是否是唯一索引 默认值为false
* dropDups    Booleam 在建立唯一索引时是否删除重复记录,指定为true创建唯一索引,默认值为false
*/

三、查询 explain

/*
*explain 是非常有用的工具,会帮助你获得查询方面诸多有用的信息。只要对游标调用
该方法,就可以得到查询细节。explain 会返回一个文档,而不是游标本身
*/

db.user.find().explain()

 如果想查询具体的信息

db.user.find().explain('executionStats')
//关注输出参数executionTimeMillis,是查询所用的时间

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值