zoukankan      html  css  js  c++  java
  • window上mongoDB的安装及常用mongodb命令

      前几天在学习node操作数据库时使用的mongoDB数据库,今天来对mongodb的安装过程及配置以及后面需要使用的一些常用命令做一下总结。

    安装MongoDB (可参考菜鸟教程中的安装步骤)

    首先,需要下载mongodb安装程序

       可自行到官网下载:

            https://www.mongodb.com/download-center/community

    然后,安装mongodb

       安装过程中可选择complete(默认安装方式)及custom(自定义安装方式),其中有一步不用选择 “ install mongoDB compass ”,该选项是安装mongoDB的GUI可视化界面(勾选上的话安装很慢),可以到官网去下载图形界面或者使用其他软件(自己使用的是Navicat)

            https://www.mongodb.com/download-center/compass

    最后,配置环境变量

       和node类似,mongo数据库也是需要配置环境变量的:

        我的电脑(属性)  -->   高级系统设置   -->  环境变量   -->  系统变量    --> 找到path属性,将mongodb的安装目录添加进去

    mongoDB常用命令

    1、启动数据库
    >mongod --dbpath (自定义文件夹路径) --port 端口号
    
    // mongodb默认端口号为27017,可自定义其他端口
    
    2、连接数据库
    >mongo --port 端口号
    
    3、查看数据库信息
    >db.stats()
    
    4、选择使用哪个数据库
    >use 数据库名
    
    // 该指令是选择指定数据库,若没有则自动创建
    
    5、显示有哪些数据库
    >show dbs;
    
    6、显示数据库中有哪些表
    >show tables;
    
    7、查看表信息
    >db.data_sys_log.stats()
    
    8、数据库帮助
    >db.help()
    
    9、数据表帮助
    >db.data_sys_log.help()
    
    10、查看全表记录
    >db.data_sys_log.find()
    
    11、设置命令行查询数据,每页显示多少条
    >DBQuery.shellBatchSize = 5
    
    /*
        默认每页显示20条记录,当显示不下的情况下,可以用 it迭代命令查询下一页数据
        可以通过DBQuery.shellBatchSize设置每页显示数据的大小。如: 
              DBQuery.shellBatchSize = 5,这样每页就显示5条记录了
    */ 
    
    12、查询一条记录
    >db.data_sys_log.findOne()
    
    13、查询聚集中字段的不同记录
    >db.data_sys_Log.distinct("login_name")
    
    14、查询聚集中login_name包含“李”关键字的记录
    >db.data.sys_log.find({"login_name"://})
    
    15、查询聚集中login_name以“李”关键字开头的记录
    >db.data.sys_log.find({"login_name":/^/})
    
    16、查询聚集中login_name以“李”关键字结尾的记录
    >db.data.sys_log.find({"login_name":/李$/})
    
    17、查询聚集中指定列
    1表示true:相当于select logoin_name,role_name from data_sys_log
    >db.data_sys_log.find({},{"login_name":1,"role_name":1})
    虽然只查login_name,role_name两列,默认会带出_id列
    
    18、查询聚集中排除指定列
    >db.data_sys_log.find({},{"login_name":0,"role_name":0})
    
    19、查询聚集中指定列,且 Age > 20
    >db.data_sys_log.find({"Age":{"$gt":20}},{"login_name":0,"role_name":0})
    
    20、聚集中字段排序
    >db.data_sys_log.find().sort({"login_name":1})  升序
    >db.data_sys_log.find().sort({"login_name":-1}) 降序
    
    21、统计聚集中记录条数
    >db.data_sys_log.find().count();
    
    22、统计聚集中符合条件的记录条数
    >db.data_sys_log.find({"Age":{"$gt":20}}).count()
    
    23、统计聚集中字段符合条件的记录条数
    >db.data_sys_log.find({"login_name":{"$exists":true}}).count()
    相当于:select count(login_name) from data_sys_log
    
    24、查询聚集中前5条记录
    >db.data_sys_log.find().limit(5)
    
    25、查询聚集中第10条记录以后的5条记录
    >db.data_sys_log.find().skip(10).limit(5)
    
    26、查询聚集中第10条以后的记录,即从第11条开始
    >db.data_sys_log.find().skip(10)
    
    27、OR查询
    >db.data_sys_log.find({"$or":[{"login_name":/王/},{"role_name":/王/}]},{"login_name":true,"role_name":true})
    相当于:
    select login_name,role_name from data_sys_log where login_name like '%王%' or role_name like '%王%'
    
    28、添加新记录
    >db.data_sys_log.insert({"_class":"com.uws.base.model.SysLogMongo","login_name":"测试","role_name":"测试角色","opt_content":"[类名]:com.uws.base.controller.LoginController,[方法]:logout,[参数]:","create_time":"2019-05-21 10:59:10"})
    
    注意:如果不选择库执行,即不use hz_studentroll;
    则直接在test库中创建data_sys_log表,插入数据
    
    29、修改记录
    >db.data_sys_log.update({"login_name":"系统管理员"},{"$set":{"role_name":"管理员"}})
    注意:配置多条,只会修改一条
    
    30、删除记录
    >db.data_sys_log.remove({"role_name":"管理员"})
    >db.data_sys_log.remove({"age":{$lt:20}})  age<20
    $lt         <
    $lte        <=
    $gt       >
    $gte        >=
    $ne          !=
    
    31、全部删除
    >db.data_sys_log.remove()
    >db.data_sys_log.remove({})
    
    32、给表添加字段
    >db.data_sys_log.update({},{$set:{source:null}},{multi:1})
    
    33、删除表字段
    >db.data_sys_log.update({},{$unset:{'source':null}},false,true)
    
    34、删除数据库
    >db.dropDatabase();   删除当前所在的数据库
    
    35、删除表
    >db.user.drop()   删除user表
    
    36、关闭mongo服务
    1)使用数据库命令关闭:
    >use admin
    >db.shutdownServer()
    
    2)使用mongod命令关闭
    >mongod --shutdoun -f ../mongo.conf
    或者
    >mongod -f ../monog.conf shutdown
    
    3)使用kill命令
    >ps -ef|grep mongo
    >kill pid
    >ps -ef|grep pmon
    使用 kill -2 pid  或  kill -15 pid
    不要使用kill -9 pid,因为如果MongoDB运行在没开户日志(--journal)的情况下,可能会造成数据损失。
    
    37、建立复合索引
    >db.test.ensureIndex({"age": 1,"no": 1,"name": 1 })
    
    38、查看索引命名空间
    >db.tb_user.stats() 查看indexSizes的值
    
    39、查看表数据大小:bytes
    db.sysLog.dataSize()
    
    40、查看表分配大小,包括未使用的空间
    >db.sysLog.totalSize()
    
    41、查看表索引大小
    >db.sysLog.totalIndexSize();
    
    
    // 注:前面的 data_sys_log 表示集合名(和mysql中表类似)





  • 相关阅读:
    Golang
    Linux美化终端
    MetaSploit Pro 下载地址
    otunnel : 一个和lcx差不多的端口转发的工具
    MS17-010 EternalBlue SMB Remote Windows Kernel Pool Corruption 2017-05-18 16:45
    黑客军火库
    图片后门捆绑利用工具 – FakeImageExploiter
    给自己的QQ群开启腾讯官方的群聊机器人
    ImportError: No module named Crypto.Cipher
    内网渗透小技巧
  • 原文地址:https://www.cnblogs.com/zsp-1064239893/p/11763222.html
Copyright © 2011-2022 走看看