zoukankan      html  css  js  c++  java
  • 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/';
    
  • 相关阅读:
    TDH-hbase shell 常用命令
    WebService之基于REST机制的实现实例(Java版)
    大牛地址
    Solr的SolrCloud与Master-slave主从模式对比
    solr亿万级索引优化实践-自动生成UUID
    Solr查询中涉及到的Cache使用及相关的实现【转】
    05-spectral 图机器学习之谱分解
    03-motifs 图机器学习之motif和结构角色
    04-communities 图机器学习之社区
    02-gnp-smallworld 图机器学习之最小世界
  • 原文地址:https://www.cnblogs.com/snail-gao/p/14655913.html
Copyright © 2011-2022 走看看