mongodb常用命令和基本知识

来源:互联网 发布:黄光剑抄袭软件 编辑:程序博客网 时间:2024/06/04 18:11

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 Sets 11.

    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/mongodb/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/mongodb/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/mongodb/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 – 记录所有命令

     

  • 原创粉丝点击