zoukankan      html  css  js  c++  java
  • mongo shell命令

    https://docs.mongodb.com/manual/mongo/

    一、MongoDB客户端使用

    1、mongo:启动mongo的客户端,和mongo客户端的登录

    [root@cmos1 bin]$ ./mongo
    MongoDB shell version v3.4.2
    connecting to: mongodb://127.0.0.1:27017
    MongoDB server version: 3.4.2
    Server has startup warnings: 
    2017-03-28T19:32:06.747+0800 I STORAGE  [initandlisten] 
    2017-03-28T19:32:06.747+0800 I STORAGE  [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
    2017-03-28T19:32:06.747+0800 I STORAGE  [initandlisten] **          See http://dochub.mongodb.org/core/prodnotes-filesystem
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] 
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] 
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] 
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] 
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] **        We suggest setting it to 'never'
    2017-03-28T19:32:07.117+0800 I CONTROL  [initandlisten] 
    > 

    如果连接远程的mongoDB的话

    mongo paydb --username pay1usr  --host 10.200.110.15 --port 27017 --password pay1usr1234

    二、MongoDB数据库层管理相关命令

    2.1、use 创建自定义数据库

    use databaseName  --如果 databaseName 数据库不存在, 新建数据库。如果存在,则连接该数据库。

    2.2、show dbs 查看数据库列表

    show dbs

    > show dbs
    admin        0.000GB
    config       0.000GB
    local        0.000GB
    member_data  0.000GB
    >

    2.3、db   ---显示当前使用的数据库名称

    > db
    member_data
    > 

    2.4、db.getName()  ---显示当前使用的数据库名称

    > db.getName()
    member_data
    >

    2.5、 db.dropDatabase()  --删当前使用的数据库

    db.dropDatabase()   # 执行删除
    { "ok" : 1 }          # 返回

    2.6、 db.repairDatabase()  --修复当前数据库

    > db.repairDatabase()
    { "ok" : 1 }
    > 

    2.7、 db.version()   --当前数据库版本

    > db.version()
    4.0.6
    >

    2.8、 db.getMongo()  --查看当前数据库的链接机器地址

    > db.getMongo()
    connection to 127.0.0.1:27017
    >

    2.9、db.getCollectionNames()   --查看数据库中有那些个集合(表)

    > db.getCollectionNames()
    [ "memberDto", "my", "t_member" ]
    > 

    2.10、db.stats() 统计数据库信息

    db.stats()

    # 统计数据库信息
    db.stats()
    {
            "db" : "test",          # 系统自带测试数据库
            "collections" : 0,      # 集合数量
            "views" : 0,            # 
            "objects" : 0,          # 文档对象的个数, 所有集合的记录数之和
            "avgObjSize" : 0,         # 平均每个对象的大小, 通过 dataSize / Objects 得到
            "dataSize" : 0,         # 当前库所有集合的数据大小
            "storageSize" : 0,       # 磁盘存储大小
            "numExtents" : 0,        # 所有集合的扩展数据量统计数
            "indexes" : 0,            # 已建立索引数量
            "indexSize" : 0,        # 索引大小
            "fileSize" : 0,            #
            "fsUsedSize" : 0,        #
            "fsTotalSize" : 0,        #总大小
            "ok" : 1
    }

    默认单位:字节byte

     三、MongoDB 集合管理相关命令

    3.1、show collections    --创建集合(表)

    > db.duan.insert({name:"duan",age:20})
    WriteResult({ "nInserted" : 1 })        #插入成功提示
    > 

    3.2、show collections    --查看所有的集合(表)

    > show collections
    duan
    memberDto
    my
    t_member
    > 

    3.3、db.xx.drop()    --删除对应集合(表)

    > db.duan.find()
    { "_id" : ObjectId("5cbd6fa7770fa2f0d42b78e6"), "name" : "duan", "age" : 20 }
    > db.duan.drop()
    true
    > db.duan.find()
    > 

    、MongoDB 文档操作命令

    4.1、给指定数据库添加集合并且添加记录
    db.[documentName].insert({...})

    > db.duan.insert({name:"duan",age:22})
    WriteResult({ "nInserted" : 1 })
    > 

    4.2、查询指定文档的数据

    db.[documentName].find()

    > db.duan.find()
    { "_id" : ObjectId("5cbd6fa7770fa2f0d42b78e6"), "name" : "duan", "age" : 20 }
    > 

    4.3、查看文档数量

    db.collectionName.find().count()

    > db.duan.count()
    2
    > 

    4.4、更新文档数据
    db.[documentName].update({查询条件},{更新内容})

    > db.my.update({"name":"zhang"},{"name":"zhang","dept":"renli"})
    WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
    > db.my.find()
    { "_id" : ObjectId("58da50c316910cd26a9faa26"), "name" : "zhang", "dept" : "renli" }
    > 

    4.5、删除文档中的数据
    db.[docmentName].remove({...})

    > db.my.find()
    { "_id" : ObjectId("58da50c316910cd26a9faa26"), "name" : "zhang", "dept" : "renli" }
    { "_id" : ObjectId("58da51b216910cd26a9faa28"), "name" : "li", "dept" : "yanfa2" }
    > db.my.remove({"dept":"yanfa2"})
    WriteResult({ "nRemoved" : 1 })
    > db.my.find()
    { "_id" : ObjectId("58da50c316910cd26a9faa26"), "name" : "zhang", "dept" : "renli" }
    >

    、MongoDB 其它管理命令(管理类、统计、监控、性能)

     5.1、查看数据库用户角色权限

    show roles

    # 显示 test 数据库的所有角色权限
    show roles
    {
            "role" : "dbAdmin",                # 数据库管理角色, 执行数据库管理相关操作功能
            "db" : "test",            
            "isBuiltin" : true,                # 内置角色
            "roles" : [ ],                    # 放置用户角色、权限等信息
            "inheritedRoles" : [ ]            
    }
    {
            "role" : "dbOwner",                # 提供数据库任何管理操作功能, 此角色
                                            # 集合了 readWrite, dbAdminhe userAdmin
                                            # 角色赋予的权限
            "db" : "test",
            "isBuiltin" : true,
            "roles" : [ ],
            "inheritedRoles" : [ ]
    }
    {
            "role" : "enableSharding",        # 提供分片操作权限
            "db" : "test",
            "isBuiltin" : true,
            "roles" : [ ],
            "inheritedRoles" : [ ]
    }
    {
            "role" : "read",                 # 主要提供自定义业务数据库读权限
            "db" : "test",
            "isBuiltin" : true,
            "roles" : [ ],
            "inheritedRoles" : [ ]
    }
    {
            "role" : "readWrite",            # 主要提供自定义业务数据库读写权限
            "db" : "test",
            "isBuiltin" : true,
            "roles" : [ ],
            "inheritedRoles" : [ ]
    }
    {
            "role" : "userAdmin",            # 提供在当前数据库上创建和修改角色和用户的功能。
                                            # 由于该角色允许操作员向任何用户授予任何权限,
                                            # 该角色还间接地提供对数据库的超级用户(root)
                                            # 的访问权限。
            "db" : "test",
            "isBuiltin" : true,
            "roles" : [ ],
            "inheritedRoles" : [ ]
    }

    5.2、查看统计数据库信息

    db.stats()

    # 统计数据库信息
    db.stats()
    {
            "db" : "test",          # 系统自带测试数据库
            "collections" : 0,      # 集合数量
            "views" : 0,            # 
            "objects" : 0,          # 文档对象的个数, 所有集合的记录数之和
            "avgObjSize" : 0,         # 平均每个对象的大小, 通过 dataSize / Objects 得到
            "dataSize" : 0,         # 当前库所有集合的数据大小
            "storageSize" : 0,       # 磁盘存储大小
            "numExtents" : 0,        # 所有集合的扩展数据量统计数
            "indexes" : 0,            # 已建立索引数量
            "indexSize" : 0,        # 索引大小
            "fileSize" : 0,            #
            "fsUsedSize" : 0,        #
            "fsTotalSize" : 0,        #总大小
            "ok" : 1
    }

    默认单位:字节byte

    如果想要返回kb

    db.stats(1024);

    如果想要返回MB

    db.stats(1048576);

    如果想要返回GB

    db.stats(1073741824);

    5.2、mongostat 实时数据库状态,读写、加锁、索引命中、缺页中断、读写等待队列等情况。

      每秒刷新一次状态值,并能提供良好的可读性,通过这些参数可以观察到MongoDB系统整体性能情况。

    [mongod@MongoDB oplog]$ mongostat -h 10.0.0.152 --port 28017 
    insert query update delete getmore command flushes mapped  vsize   res faults qr|qw ar|aw netIn netOut conn set repl                      time
        *0    *0     *0     *0       0     1|0       0        303.0M 13.0M      0   0|0   0|0  143b     8k    1      RTR 2018-01-08T17:28:42+08:00

    参数说明: 

    参数

    参数说明

    insert

    每秒插入量

    query

    每秒查询量

    update

    每秒更新量

    delete

    每秒删除量

    conn

    当前连接数

    qr|qw

    客户端查询排队长度(读|写)最好为0,如果有堆积,数据库处理慢。

    ar|aw

    活跃客户端数量(读|写)

    time

    当前时间

     示例:

    [root@localhost bin]# ./mongostat -h 10.200.110.99 --port 27017
    insert query update delete getmore command dirty used flushes vsize   res qrw arw net_in net_out conn                time
        *0    *0     *0     *0       0     2|0  0.0% 0.0%       0  981M 88.0M 0|0 1|0   158b   62.3k    7 Apr 22 16:35:41.814
        *0    *0     *0     *0       0     2|0  0.0% 0.0%       0  981M 88.0M 0|0 1|0   158b   62.3k    7 Apr 22 16:35:42.813
        *0    *0     *0     *0       0     1|0  0.0% 0.0%       0  981M 88.0M 0|0 1|0   157b   62.1k    7 Apr 22 16:35:43.815

    5.3、 mongotop命令说明:

    [mongod@MongoDB oplog]$ mongotop  -h 127.0.0.1:27017
    2018-01-08T17:32:56.623+0800    connected to: 127.0.0.1:27017
    
                                                   ns    total    read    write    2018-01-08T17:32:57+08:00
                                   admin.system.roles      0ms     0ms      0ms                             
                                   admin.system.users      0ms     0ms      0ms                             
                                 admin.system.version      0ms     0ms      0ms                             
                                             app.user      0ms     0ms      0ms                             
                 automationcore.automation.job.status      0ms     0ms      0ms                             
                     automationcore.config.automation      0ms     0ms      0ms                             
            automationcore.config.automationTemplates      0ms     0ms      0ms                             
    automationcore.config.automationTemplates_archive      0ms     0ms      0ms                             
             automationcore.config.automation_archive      0ms     0ms      0ms                             
                     automationstatus.lastAgentStatus      0ms     0ms      0ms      

    mongotop重要指标

    ns:数据库命名空间,后者结合了数据库名称和集合。
    total:mongod在这个命令空间上花费的总时间。
    read:在这个命令空间上mongod执行读操作花费的时间。
    write:在这个命名空间上mongod进行写操作花费的时间。

    5.4、 db.currentOp()

    db.currentOp是个好东西,顾名思义,就是当前的操作。在mongodb中可以查看当前数据库上此刻的操作语句信息,包括insert/query/update/remove/getmore/command等多种操作。直接执行

    db.currentOp()一般返回一个空的数组,我们可以指定一个参数true,这样就返回用户connections与系统cmmand相关的操作。

    查看数据库当前执行什么操作。

    用于查看长时间运行进程。

    通过(执行时长、操作、锁、等待锁时长)等条件过滤。

    10、Shell的help
    里面有所有的shell可以完成的命令帮助
    全局的help数据库相关的db.help()集合相关的db.[databaseName].help()

  • 相关阅读:
    ubuntu16.04设置开机自启服务
    Flask架构管理及特点(重要)
    Django开发框架知识点
    Django进行数据迁移时,报错:(1064, "You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(6) NOT NULL)' at line 1")
    Java 网络编程(二) 两类传输协议:TCP UDP
    Java 网络编程(一) 网络基础知识
    .NET开源项目
    手写ArrayList、LinkedList
    命令查看java的class字节码文件
    dubbo总结
  • 原文地址:https://www.cnblogs.com/duanxz/p/3553867.html
Copyright © 2011-2022 走看看