设为首页 收藏本站
查看: 1421|回复: 0

[经验分享] mongodb的命令行操作命令详解(增删改查、高级查询)

[复制链接]

尚未签到

发表于 2018-10-24 12:27:08 | 显示全部楼层 |阅读模式
mongodb的命令行操作命令详解(增删改查、高级查询)
    本文为上文的续篇,主要讲解mongodb在cmd的直接操作命令,我的mongodb是安装在d:\mongodb下
  1,mongodb启动服务 :

  •   命令行方式启动:
      . 直接cmd下进入mongodb的bin目录,输入mongod.exe –dbpath   d:\mongodb\db    启动成功
  •   配置文件方式启动:
      .对于一些大神来说,普通的启动满足不了心里需求(玩笑),对于专业的DBA来说,会在启动mongodb数据库实例的时候加进去好多参数以便使得系统运行更高效稳定,但是如果吧参数都加载mongod的后面会使得参数混乱且每次都得手动的敲进去,不好管理,mongodb为此提供了配置文件启动的方式
      .新建配置文件mongodb.cnf   编辑内容  dbpath=d:\mongodb\data\db保存在bin的同级目录下,打开cmd 进入bin下,输入mongod.exe -f  d:\mongodb\mongodb.cnf  启动成功
  •   daemon方式启动
      .以上的方式都有一个明显的缺陷,即如果控制台的界面不小心被关闭,则mongodb的服务也会随之停止,这带来了极大的不方便和不安全,这也促使有了daemon启动方式,这种方式需要加上–fork即可,但是如果用到fork参数就必须使用 –logpath参数指定日志文件路径。
      .data文件夹下新建log文件夹,并在文件夹下新建log1.log文件。进入bin目录,输入 mongod.exe –dbpath d:\mongodb\data\db –logpath d:\mongodb\data\log\log1.log –fork   启动成功。
  •   mongod参数说明:
      .dbpath  数据库路径
      .logpath日志目录
      .logappend  错误日志采用追加模式
      .bind_ip 对外服务绑定的ip  一般置为空,即绑定本地多有可用ip上。  但是如果有需要可以单独制定
      .port   对外服务端口 ,web管理端口一般在这个基础上+1000
      .fork 服务在后台以daemon方式运行
      .journal 开启日志功能,通过保存日志来尖山单机故障的恢复时间。
      .syncdelay 系统同步刷新磁盘的时间
      .directoryperdb 每个db存放在单独的目录中,建议设置该参数
      .maxConns 最大连接数
      .repairpath 执行repair时的临时路径,在如果没有开启journal的时候,异常down机后,必须执行repair重启,否则会报错,上一篇文章有提到。
  2,mongodb停止服务 :

  •   Control-C
  •   db.shutdownServer()
  •   值得注意的是,最好不要用linux的kill命令来杀死进程,这样会导致数据库数据的损坏。
  3,新建数据库

  •   在mongodb中,并没有单独新建数据库的命令,mongodb是非关系型数据库中最像关系型数据库的数据库,所以,有很多命令也和sql有一定的相似之处。
  •   打开数据库连接:进入到bin目录   输入命令:mongo.exe
  •   查询所有的数据库   show  dbs   或者   show databases
  •   当我们想新建一个没有的数据库的时候,例如我们想新建数据库 testTwo ,直接可以输入命令   use  testTwo即可,在testTwo存在的情况下回切换到testTwo,在不存在的情况下就会新建这个数据库。
  4,插入记录
  - mongodb之下和sql表对应的叫做集合,mongo中没有表的概念,只有集合的概念,和数据库类似,集合也无需单独的新建,在插入记录的同时,如果存在集合则插入数据到该集合中,如果不存在集合,则新建集合。
  - db.user.save({“name”:”wpz”,”password”:”123”});
  - 上面的命令代表新建user集合   并插入数据{“name”:”wpz”,”password”:”123”}
  - 也可以定义为变量存储
  - i={“name”:”wpz”,”password”:”123”}; db.user.save(i);
  - 也可以用更灵活的for循环来存贮
  -  for(var i=1;i= 四种运算符查询

  •   db.user.find({“age”:{$gt:30}})     age大于30
  •   db.user.find({“age”:{$lt:30}})      age小于30
  •   db.user.find({“age”:{$gte:30}})   age大于或等于30
  •   db.user.find({“age”:{$lte:30}})    age小于或等于30
      多条件查询
  •   db.user.find({“age”:{,gt:10,



  •   6,匹配所有

    •   $all   这个操作符号类似于sql中的in运算符,但是不同的是in只需要满足 一个值,但是alll需要满足所有值。
    •   lte:30}})

  •   db.user.find({“age”:{$all:[6,8]}});
      7,查询某一个字段是否存在:$exists
      8,null值得处理

    •   null处理比较奇怪,因为mongodb中的数据集合不能指定特定的格式,没有sql中的字段的概念,就是说,在同一个集合中有的字段在一条数据中存在,在另一条数据中不存在,所以,要找出改字段是不是为空,先要判断这个字段是不是存在才行。
    •   db.user.find({age:{“in":[null],"
    •   db.user.find({“password”:{$exists:true}});    password存在的记录
    •   db.user.find({“password”:{$exists:false}});   password不存在的记录
    •   9,取模运算   $mod
        10,不等于   $ne       –> (not equals)
        11,包含   $in
        12,不包含  $nin
        13,数组元素的个数   $size
        14,正则表达式匹配查询

      •   name不以wpz开头的数据
      •   db.user.find({“name”:{$not:/^wpz.*/}});


      •   查询age数据元素个数为3的数据
      •   db.user.find({age:{$size:3}});


      •   查询所有age不等于10 或者20 的数据
      •   db.user.find({age:{$nin:[10,20]}});


      •   查询所有age等于10 或者20 的数据
      •   db.user.find({age:{$in:[10,20]}});


      •   查询所有age不等于10 的数据
      •   db.user.find({age:{$ne:10}});


      •   查询所有age取模10之后为0 的数据,即查询age为10的倍数的字段:
          db.user.find({age:{$mod:[10,0]}});


      •   exists”:true}});

      15,count查询条数
      - db.user.find().count();
      16,skip  设置查询数据的起点
      查询从第三条数据之后的五条数据
      - db.user.find().skip(3).limit(5);
      17 排序  sort
      - db.user.find().sort({age:1});      按照age升序
      - db.user.find().sort({age:-1});     按照age降序
      mongodb也支持存储过程的查询。
      7,数据修改更新

  •   mongodb的修改是比较烦的一种 ,要用到$set:
  •   例如,吧mongodb中,name为wpz,修改为  wpz_new
      db.user.update({“name”:”wpz”},{$set:”name”:”wpz_new”});
  8,数据删除

  •   mongodb的删除比较简单,格式如下:
      db.user.remove({“name”:”wpz”});
  其他说明

  •   在上面查询出的数据可以看出,所有的数据不管指定或者不指定都会带有_id字段,这个字段相当于mongodb中的uuid,是数据唯一性的标示,可以理解为sql中的主键。
  •   mongodb解压的目录:

      每一个exe都有对应的作用,相当于mongodb提供的一些常用的工具,例如,第一个是讲bson格式文件转存在json格式数据的工具,读者可自行查询每个工具的作用。
  3,mongodb也提供了一些GUI管理工具,可视化的管理mongodb数据库。
  .mongoVUE:提供mongodb的基本操作,优点是简单易用,但是总体上功能比较弱
  .RockMongo  是windows平台首选的mongodb管理工具,速度快,安装简单,支持多种语言,支持多主机,可以保证数据的安全性。
  .MongoHUB   是针对mac平台的mongodb管理工具。


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-625925-1-1.html 上篇帖子: MongoDB 删除数据 下篇帖子: Linux安装MongoDB-unijhql
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表