MongoDb-01——Mac上安装MongoDb以及相关的简单命令

MongoDb-01------Mac上安装MongoDb以及相关的简单命令

  • [1. 下载、安装](#1. 下载、安装)
    • [1.1 官网下载](#1.1 官网下载)
    • [1.2 关于安装MongoDB](#1.2 关于安装MongoDB)
      • [1.2.1 官方安装文档](#1.2.1 官方安装文档)
      • [1.2.2 Mac安装详细步骤(使用brew)](#1.2.2 Mac安装详细步骤(使用brew))
  • [2. 启动MongoDB](#2. 启动MongoDB)
    • [2.1 官方说明](#2.1 官方说明)
    • [2.2 作为macOS服务运行的相关命令](#2.2 作为macOS服务运行的相关命令)
    • [2.3 访问](#2.3 访问)
  • [3. 链接并使用mongodb](#3. 链接并使用mongodb)
    • [3.1 链接mongodb](#3.1 链接mongodb)
    • [3.2 简单使用mongodb](#3.2 简单使用mongodb)
      • [3.2.1 简单命令](#3.2.1 简单命令)
      • [3.2.2 简单crud使用(文档命令)](#3.2.2 简单crud使用(文档命令))
        • [3.2.2.1 插入数据](#3.2.2.1 插入数据)
        • [3.2.2.2 查询数据](#3.2.2.2 查询数据)
          • [3.2.2.2.1 一般查询](#3.2.2.2.1 一般查询)
          • [3.2.2.2.2 模糊查询](#3.2.2.2.2 模糊查询)
          • [3.2.2.2.3 排序查询](#3.2.2.2.3 排序查询)
          • [3.2.2.2.4 分页查询](#3.2.2.2.4 分页查询)
        • [3.2.2.3 修改数据](#3.2.2.3 修改数据)
        • [3.2.2.4 删除数据](#3.2.2.4 删除数据)
        • [3.2.2.5 更多操作参考](#3.2.2.5 更多操作参考)
          • [3.2.2.5.1 更多语法及例子](#3.2.2.5.1 更多语法及例子)
          • [3.2.2.5.2 操作符等其他更多文档](#3.2.2.5.2 操作符等其他更多文档)
  • [4. navicat链接](#4. navicat链接)

1. 下载、安装

1.1 官网下载

1.2 关于安装MongoDB

1.2.1 官方安装文档

1.2.2 Mac安装详细步骤(使用brew)

  • 我这里也是参考上面安装步骤,使用 brew 进行安装的,具体请看下面步骤。
    关于 brew ,如果没有安装的,请移步下面的文章:
    mac上安装Homebrew的详细介绍包括解决各种问题以及使用Homebrew安装git、svn等软件.

  • 安装步骤:

    • 更新 brew,随自己,可更新可不更新

      bash 复制代码
      brew update
    • 创建一个tap仓库

      bash 复制代码
      brew tap mongodb/brew
    • 安装指定版本的 mongodb-community Server,如果不指定版本,默认好像也是安装最新版本

      bash 复制代码
      brew install mongodb-community@7.0
  • 查看是否安装成功

    • 安装之后,通过下面命令查看是否安装上

      bash 复制代码
      brew list
  • 安装文件说明

    • 除二进制文件外,安装过程还会根据你的Apple硬件在以下指定位置创建以下文件和目录,如下:

    • 可以执行以下命令来检查brew将这些文件和目录安装在哪里

      bash 复制代码
      brew --prefix

2. 启动MongoDB

2.1 官方说明

  • 直接看官网说明:

2.2 作为macOS服务运行的相关命令

  • 启动服务:

    bash 复制代码
    brew services stop mongodb-community@7.0
  • 查看MongoDB服务是否正在运行

    bash 复制代码
    brew services list
  • 停止服务:

    bash 复制代码
    brew services stop mongodb-community@7.0
  • 查看占用的端口

    • 先查看进程ID

      bash 复制代码
      ps -ef | grep mongodb
    • 使用 lsof ,根据进程ID查看端口

      bash 复制代码
      lsof -i | grep 24403 
    • 补:使用 lsof ,根据端口 查 服务和进程

      bash 复制代码
      lsof -i:27017

2.3 访问

  • 知道端口之后不妨访问试试,当然,访问不通,协议不同,但是可以说明mongodb服务启动了,如下:

    bash 复制代码
    http://127.0.0.1:27017/

3. 链接并使用mongodb

3.1 链接mongodb

  • 链接命令:

    bash 复制代码
    mongosh

3.2 简单使用mongodb

3.2.1 简单命令

  • 常用简单命令,如下:

    bash 复制代码
    show dbs   #查看所有数据库
    
    db   # 查看当前数据库
    
    db.getName() #查看当前数据库名称
    
    use dbName   # 切换数据库(注意:有这个数据库,则会选中这个数据库,没有则会创建)
    
    db.version()  # 查看mongodb版本
    
    db.stats()   # 查看数据库状态信息
    
    db.getMongo()  #查看数据库的链接地址
    
    db.dropDatabase()  # 删除数据库
    ......
  • 关于创建 数据库 和 集合

    bash 复制代码
    use susu_test    # 切换数据库susu_test(注意:有这个数据库,则会选中这个数据库,没有则会创建)
    
    db.createCollection(name, options)    # 创建集合  name:集合名,字符
    db.createCollection('dog')
    
    show collections   # 查看当前数据库所有集合
    
    db.集合名.renameCollection('集合新名')    # 重命名集合
    db.cat.renameCollection('cats')
    
    db.集合名.drop()    # 删除集合
    db.cats.drop()

3.2.2 简单crud使用(文档命令)

3.2.2.1 插入数据

  • 插入单条数据

    • 语法:

      bash 复制代码
      db.dog.insert({})
      
      db.dog.insertOne({})
    • 例子:

      bash 复制代码
      db.dog.insert({dogNum:'A-1001',dogName:'麦兜',dogAge:3,dogKind:'边牧'})
      
      db.dog.insertOne({dogNum:'A-1002',dogName:'泡泡',dogAge:5,dogKind:'柯基'})
  • 插入多条数据

    • 语法:

      bash 复制代码
      db.dog.insert([{},{}])
    • 例子:

      bash 复制代码
      db.dog.insert([{dogNum:'A-1003',dogName:'大牙',dogAge:2,dogKind:'边牧'},{dogNum:'A-1004',dogName:'闪闪',dogAge:8,dogKind:'秋田'}])
  • 如图:

3.2.2.2 查询数据

3.2.2.2.1 一般查询
  • 语法如下:

    bash 复制代码
    db.dog.find()   # 1.查询所有
    
    db.集合名.find({key:val})   # 2.指定键值对条件查询
    db.dog.find({dogNum:'A-1005'})
    
    db.集合名.find({key:{$in:[value1,value2]}})    # 3.包含,等价于sql中的in查询
    db.dog.find({dogNum:{$in:['A-1005','A-1006']}})
    
    db.集合名.find({key1:val1},{key2:val2}......)  # 4. 多条件查询 同时满足
    db.dog.find({dogKind:'边牧',dogAge:{$lt:3}})  #品种是边牧,并且年龄小于3的
    db.dog.find({$and:[{dogKind:'边牧'},{dogAge:{$lt:3}}]}) #$and 等价于上条写法
    
    db.dog.find({$or:[{dogKind:'边牧'},{dogAge:{$lt:3}}]}) # $or 满足条件之一即可
  • 效果如下:

3.2.2.2.2 模糊查询
  • 语法如下:

    bash 复制代码
    db.集合名.find({key:/val/})   #  1. 模糊查询(包含val的数据),  注意:val 不能用引号
    db.dog.find({dogName:/兜/})
    
    db.集合名.find({ key: /^val/})  # 2.1 查询key中包含val,且以val开头的数据
    db.dog.find({dogName:/^麦/})  # 注意:不加引号
    
    db.dog.find({key:{$regex:'^val'}})  # 2.2 查询key中包含val,且以val开头的数据
    db.dog.find({dogName:{$regex:'^麦'}})  # 注意:加引号
    
    # 同理,查询以XXX结尾的语法类似,两种写法,如下:
    db.dog.find({dogName:/兜$/})
    db.dog.find({dogName:{$regex:'兜$'}})
  • 效果如下:

3.2.2.2.3 排序查询
  • 语法:

    bash 复制代码
    db.集合名.find({key:val}).sort({key:1})  # 1 升序,-1 将序
    
    db.dog.find({dogKind:'边牧'}).sort({dogAge:-1}) # 按年龄将序
3.2.2.2.4 分页查询
  • 语法:

    bash 复制代码
    db.集合名.find({key:val}).limit(num).skip(start)  # num:表示pageSzie , start:表示起始索引,默认为0
    
    db.dog.find({dogKind:'边牧'}).limit(2).skip(1)
  • 如下:

3.2.2.3 修改数据

  • 语法如下:

    bash 复制代码
    db.dog.updateOne({key:val},[{$set:{key1:val1,key2:val2}}])
    
    db.dog.updateOne({dogName:'麦兜'},[{$set:{dogKind:'边境牧羊犬'}}])
    db.dog.updateOne({dogName:'麦兜'},[{$set:{dogKind:'边牧犬',dogAge:4}}])
    db.dog.updateOne({dogName:'麦兜'},{$set:{dogKind:'边牧犬22',dogAge:3}})  # []可以去掉

3.2.2.4 删除数据

  • 根据指定的键值对条件:

    bash 复制代码
    db.集合.deleteOne({key:val})   # 1.1 删除单条数据,最多删除一个匹配指定筛选器的文档,即使多个文档可能匹配指定筛选器。
    db.dog.findOneAndDelete({dogKind:'秋田'}) # 1.2 删除单条数据,即便满足的有多条,删除之后,返回删除的数据
    
    db.集合.deleteMany({key:val})  # 删除多条数据,删除与指定筛选器匹配的所有文档。
    
    db.dog.remove({dogKind:'边牧'});  # remove() 删除满足条件的数据(可多条) ,但提示方法已被弃用
    
    db.集合.deleteMany({})   # 删除所有数据(如果给条件删除满足条件的数据,如果不给条件,删除所有的数据)
    db.dog.deleteMany({dogNum:{$in:['A-1005','A-1006']}})  # 删除满足条件的数据

3.2.2.5 更多操作参考

3.2.2.5.1 更多语法及例子
3.2.2.5.2 操作符等其他更多文档

4. navicat链接

  • 服务只要起着,直接连就行
  • 连上之后查看数据:
    • 可以使用命令查询:
    • 也可以使用navicat自带的图形化查询
相关推荐
白总Server12 小时前
MongoDB解说
开发语言·数据库·后端·mongodb·golang·rust·php
码爸14 小时前
spark读mongodb
大数据·mongodb·spark
小安运维日记21 小时前
Linux云计算 |【第四阶段】NOSQL-DAY1
linux·运维·redis·sql·云计算·nosql
一个很帅的帅哥1 天前
实现浏览器的下拉加载功能(类似知乎)
开发语言·javascript·mysql·mongodb·node.js·vue·express
JY_H1 天前
MongoDB
数据库·mongodb
东城绝神2 天前
《Linux运维总结:基于ARM64+X86_64架构CPU使用docker-compose一键离线部署mongodb 7.0.14容器版副本集群》
linux·运维·mongodb·架构
香吧香2 天前
mongo 副本集rs 理解和使用小结
mongodb
香吧香3 天前
mongodb 中rs.stauts()命令参数解析
mongodb
青云交4 天前
大数据新视界 --大数据大厂之MongoDB与大数据:灵活文档数据库的应用场景
大数据·数据库·mongodb·非关系型数据库·文档存储·查询功能、数据处理·开发效率、应用场景、高可扩展性
学习3人组4 天前
技术选型对SQL与NoSQL以及Mysql,Hbase,Hive使用特性差别
sql·mysql·nosql