MongoDB索引和用户基础

索引基础

创建索引:

db.user.ensureIndex({"name":1});

获取当前集合的索引:

db.user.getIndexes();

删除索引:

db.user.dropIndex({"name":1});

复合索引(数字1代表索引按升序存储,-1表示索引按照降序方式存储):

db.user.ensureIndex({"name":1,"age":-1});

tips:这里符合索引类似mysql最左匹配原则

注意点:

随着集合的增长, 需要针对查询中大量的排序做索引。 如果没有对索引的键调用 sort,MongoDB 需要将所有数据提取到内存并排序。 因此在做无索引排序时, 如果数据量过大以致无法在内存中进行排序, 此时 MongoDB 将会报错。  

唯一索引

创建唯一索引:

db.user.ensureIndex({"userid":1},{"unique":true});

索引参数

Parameter Type Description
background Boolean 建索引过程中会阻碍其它数据库操作,background可指定以后台方式创建索引,即增加“background”可选参数。“bcakground”默认值为false。
unique Boolean 建立的索引是否唯一。指定为true创建唯一索引。默认值为false。
name String 索引的名称。如果未指定,MongoDB的通过连接索引的字段名和排序顺序生成一个索引名称。
dropDups Boolean 在建立唯一索引时是否删除重复记录,指定true创建唯一索引。默认值为false。

使用explain

db.user.find({"name":"zhangsan"}).explain();

explain executionStats查询具体的执行时间

db.user.find().explain("executionStats");
查看数值:explain.executionStats.executionTimeMillis

账号权限

一、创建超级管理员

use admin;

db.createUser({
    user:'admin',
    pwd:'123456',
    roles:[{role:'root',db:'admin'}]
});

二、修改Mongodb数据库配置文件

路径:../../mongod.cfg

配置
security:
	authorization: enabled

三、重启Mongodb服务

四、使用账号连接数据库

mongo admin -u 用户名 -p 密码
mongo 192.168.1.1:27017/test -u user -p password

连接数据库的时候需要配置账户密码

url = 'mongodb://admin:123456@localhost:27017/';
posted @ 2021-04-13 23:31  snail灬  阅读(71)  评论(0编辑  收藏  举报