• Mongodb 的基本使用


    一、cmd连接mongodb 服务

        进入mongodb的bin目录下:[D:mongodb3.2.5in]$ mongo 127.0.0.1:27017

       常用查询:

       show dbs 查看所有数据库

      use dbName 进入当前数据库

      show tables 查看该数据库下的集合

    二、curd操作

       查询:

        1.查全部:db.mydb2_collection.find();

        2.查询一条:db.mydb2_collection.findOne();

     插入:db.mydb2_collection.insert({m:1});

     修改:db.mydb_collection.update({x:1},{x:999});

     删除:db.mydb_collection.remove({c:2});

    三、索引

      优点:可以加快与所有相关的查询速度
      缺点:增加磁盘空间,降低写入性能

     索引类型:

      id索引:自动创建的
      单键索引:
      多键索引:db.mydb2_collection.insert({x:[1,2,3,4,5]});
      复合索引:当我们的查询条件不知一个的时候,就需要建立复合索引
        db.mydb2_collection.ensureIndex({x:1,y:1}); 创建
        db.mydb2_collection.find({x:1,y:2}); 使用
      过期索引:1.在一段时间后会过期的索引 2、在索引过期后相应的数据会被删除
      使用场景:适合存储在一些时间后会失效的数据比如用户登录信息,存储的日志
      创建方式:
        注意:存储在过期索引的字段必须是指定时间类型,必须是ISODate或者ISODate数组,不能使用时间戳,否则不能自动删除。
          如果是数组,则按照最小的时间进行删除
      过期索引不是复合索引
        删除时间是不精确的(删除过程是后台程序没60秒执行一次的进程操作的,删除操作本身也需要时间) 最小时间差60秒
      全文索引:对字符串与字符串数组创建全文可搜索的索引
      插入数据:db.mydb2_collection.insert({arrticle:"aa bb cc gg hh"});
      查询:db.mydb2_collection.find({$text:{$search:"aa"}});
          db.mydb2_collection.find({$text:{$search:"aa bb ee"}}); //多关键字 或者 的关系
          db.mydb2_collection.find({$text:{$search:"aa bb -cc"}}); //不包含cc
          db.mydb2_collection.find({$text:{$search:""aa""bb""cc""}});//多关键字 且的关系
    全文索引相似度:
        查询:db.mydb2_collection.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}});
           db.mydb2_collection.find({$text:{$search:"aa bb"}},{score:{$meta:"textScore"}}).sort({score:{$meta:"textScore"}//排序

    索引的属性:
      name属性
        指定名字创建索引:db.mydb2_collection.ensureIndex({c:1,y:1},{name:"normal_index"});
        根据名字删除索引:db.mydb2_collection.dropIndex("normal_index");
      unique索引的唯一性:
        db.mydb2_collection.ensureIndex({m:1,n:1},{unique:true})
        作用:在做添加时如果存在就不插入,否则插入
      稀疏性:sparse
        创建:db.mydb2_collection.ensureIndex({m:1},{sparse:true});
        查询强制使用索引:db.mydb2_collection.find({m:{$exists:false}}).hint("m_1");
      地理位置索引:
        2d:
          创建2d平面索引: db.mydb_location.ensureIndex({w:"2d"});
          位置表示方式:经纬度[经度,纬度]
          取值范围:经度:[-180,180] 纬度[-90,90]
          插入:db.mydb_location.insert({w:[2,1]});
        near查询:
            查查与[1,1]最近的点:db.mydb_location.find({w:{$near:[1,1]}});
            查询与[1,1]相近 10的点:db.mydb_location.find({w:{$near:[1,1],$maxDistance:10}});
        形状查询 $geoWithin:
             矩形 $box: db.mydb_location.find({w:{$geoWithin:{$box:[[0,0],[2,2]]}}});
             圆形$center:db.mydb_location.find({w:{$geoWithin:{$center:[[0,0],2]}}});
              多边形$polygon:db.mydb_location.find({w:{$geoWithin:{$polygon:[[0,0],[2,2],[0,2]]}}});
         geoNear查询:
            db.runCommand({geoNear:"mydb_location",near:[1,2],maxDistance:3,num:1});
      2dsphere索引球面地理位置:

    四、安全机制

    MongoDB安全机制:
    1.物理分离(最安全):不现实
    2.网络隔离
    3.防火墙的隔离:给固定的ip访问权限
    4.用户名和密码

    创建用户
      db.createUser({user:"jalja",pwd:"jalja",roles:[{role:"userAdmin",db:"mydb"},{role:"read",db:"test"}]});

      权限:read、readWrite、dbAdmin、dbOwner、userAdmin

      在mongo.conf 中添加 auth =true 开启权限认证

      使用 用户名密码连接:mongo 127.0.0.1:27017 -u jalja -p jalja

      mongodb 的角色
      1、数据库角色
      2、集群角色
      3、数据备份角色
      4、其他特殊权限

    每天用心记录一点点。内容也许不重要,但习惯很重要!
  • 相关阅读:
    近期总结
    input
    mysql语句
    同步与异步
    localStorage的增删查改封装函数
    最基本的前后台传值
    前段存储的调用函数
    js 控制弹出窗口的大小
    拖拽
    jQuery镇张缩小动画
  • 原文地址:https://www.cnblogs.com/jalja/p/5409301.html
Copyright © 2020-2023  润新知