mongodb常用命令和基本知识

1、db.copyDatabase("blog", "blog2") // 复制数据库

 

2、db.dropDatabase() // 删除数据库 blog2

 

3、在多台服务器之间复制数据库db.copyDatabase("blog", "blog", "192.168.1.202") // 从源服务器复制 blog 数据库

> use news

switched to db news

> db.cloneDatabase("192.168.1.202") // 从源服务器克隆当前数据库(news)

 

4、当我们使用 use 切换到某个数据库时,变量 db 表示当前数据库。还可以用 getSisterDB() 函数获取其他数据库的引用。

> blog = db.getSisterDB("blog")

blog

> blog.users.insert({name : "abc"})

> blog.users.find({name : "abc"})

 

5、索引信息被保存在 system.indexes 中,且默认总是为 _id 创建索引。

ensureIndex / dropIndex / reIndex

使用 ensureIndex 创建索引,dropIndex() 删除索引,dropIndexes() 删除全部索引(不包括 _id 等系统索引)。

 
  • >db.users.ensureIndex({name:1})
  • >db.users.ensureIndex({age:1})
  • >db.system.indexes.find()

     

    6. Unique Index

    只需在 ensureIndex 命令中指定 unique 即可创建唯一索引。

     
  • >db.users.ensureIndex({name:1},{unique:true})
  • >db.system.indexes.find()

     

    7. totalIndexSize

    MongoDB 会将索引数据载入内存,以提高查询速度。我们可以用 totalIndexSize 获取全部索引数据大小。

     

    8、dbpath & port

    默认数据存储路径是 /data/db,默认端口 27017,默认 HTTP 端口 28017。用 --dbpath 和 --port 改吧

     

    9. daemon

    如果想以 Daemon 方式运行,需要同时使用 --fork、--logpath 参数。

     

    10、排序db.users.find().sort({age:-1}).limit(10000)


    11、 Replica Sets11.

    Replica Sets 使用 n 个 Mongod 节点,构建具备自动容错转移(auto-failover)、自动恢复(auto-recovery) 的高可用方案。通常使用 3 个 mongod 实例,或者 2 mongod + 1 arbiter 方案。

     

    /home/qiyk/tool/mongodb/bin/mongod -port 27017 -replSet myset -dbpath=/home/qiyk/tool/mongodb/data/db -fork -rest -logpath=/home/qiyk/tool/mong
    odb/data/log/all.log
    
     /home/qiyk/tool/mongodb/bin/mongod -port 27027 -replSet myset -dbpath=/home/qiyk/tool/mongodb/data/db2 -fork -rest -logpath=/home/qiyk/tool/mo
    ngodb/data/log/all2.log
    
     /home/qiyk/tool/mongodb/bin/mongod -port 27037 -replSet myset -dbpath=/home/qiyk/tool/mongodb/data/db3 -fork -rest -logpath=/home/qiyk/tool/mo
    ngodb/data/log/all3.log

    然后:> cfg={_id:"myset",members:[
    ... ... {_id:0,host:"10.20.155.10:27017"},
    ... ... {_id:1,host:"10.20.155.10:27027"},
    ... ... {_id:2,host:"10.20.155.10:27037"}]};

     

    > rs.initiate(cfg)
    ;
    {
    "info" : "Config now saved locally. Should come online in about a minute.",
    "ok" : 1
    }

     

     

    如此 Replica Sets 就算配置成功。

    相关配置数据保存在 local 数据库中。

     

     

    12. #只允许某ip访问
    $ mongod --bind_ip 127.0.0.1

     

    13、Mongo Database Profiler

    也可以在客户端调用db.setProfilingLevel(级别) 命令来实时配置。可以通过db.getProfilingLevel()命令来获取当前的Profile级别。

     

    					
          
    1. > db.setProfilingLevel(2);
    2. {"was":0,"ok":1}
    3. > db.getProfilingLevel()

    上面斜体的级别可以取0,1,2 三个值,他们表示的意义如下:

    0 – 不开启

    1 – 记录慢命令 (默认为>100ms)

    2 – 记录所有命令

     

  • 你可能感兴趣的:(mongodb)