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 官网下载
- 官网下载:
https://www.mongodb.com/try/download/community.
选择对应的版本下载,如下:
1.2 关于安装MongoDB
1.2.1 官方安装文档
-
关于安装建议参考中文文档,各操作系统的安装都有了
MongoDB 中文手册. -
上面文档可能不是根据最新版本定的,所以,如果想安装最新版本的,可以参考官方英文网站,如下:
https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/.
1.2.2 Mac安装详细步骤(使用brew)
-
我这里也是参考上面安装步骤,使用
brew
进行安装的,具体请看下面步骤。
关于brew
,如果没有安装的,请移步下面的文章:
mac上安装Homebrew的详细介绍包括解决各种问题以及使用Homebrew安装git、svn等软件. -
安装步骤:
-
更新 brew,随自己,可更新可不更新
bashbrew update
-
创建一个tap仓库
bashbrew tap mongodb/brew
-
安装指定版本的 mongodb-community Server,如果不指定版本,默认好像也是安装最新版本
bashbrew install mongodb-community@7.0
-
-
查看是否安装成功
-
安装之后,通过下面命令查看是否安装上
bashbrew list
-
-
安装文件说明
-
除二进制文件外,安装过程还会根据你的Apple硬件在以下指定位置创建以下文件和目录,如下:
-
可以执行以下命令来检查brew将这些文件和目录安装在哪里
bashbrew --prefix
-
2. 启动MongoDB
2.1 官方说明
- 直接看官网说明:
2.2 作为macOS服务运行的相关命令
-
启动服务:
bashbrew services stop mongodb-community@7.0
-
查看MongoDB服务是否正在运行
bashbrew services list
-
停止服务:
bashbrew services stop mongodb-community@7.0
-
查看占用的端口
-
先查看进程ID
bashps -ef | grep mongodb
-
使用 lsof ,根据进程ID查看端口
bashlsof -i | grep 24403
-
补:使用 lsof ,根据端口 查 服务和进程
bashlsof -i:27017
-
2.3 访问
-
知道端口之后不妨访问试试,当然,访问不通,协议不同,但是可以说明mongodb服务启动了,如下:
bashhttp://127.0.0.1:27017/
3. 链接并使用mongodb
3.1 链接mongodb
-
链接命令:
bashmongosh
3.2 简单使用mongodb
3.2.1 简单命令
-
常用简单命令,如下:
bashshow dbs #查看所有数据库 db # 查看当前数据库 db.getName() #查看当前数据库名称 use dbName # 切换数据库(注意:有这个数据库,则会选中这个数据库,没有则会创建) db.version() # 查看mongodb版本 db.stats() # 查看数据库状态信息 db.getMongo() #查看数据库的链接地址 db.dropDatabase() # 删除数据库 ......
-
关于创建 数据库 和 集合
bashuse 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 插入数据
-
插入单条数据
-
语法:
bashdb.dog.insert({}) db.dog.insertOne({})
-
例子:
bashdb.dog.insert({dogNum:'A-1001',dogName:'麦兜',dogAge:3,dogKind:'边牧'}) db.dog.insertOne({dogNum:'A-1002',dogName:'泡泡',dogAge:5,dogKind:'柯基'})
-
-
插入多条数据
-
语法:
bashdb.dog.insert([{},{}])
-
例子:
bashdb.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 一般查询
-
语法如下:
bashdb.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 模糊查询
-
语法如下:
bashdb.集合名.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 排序查询
-
语法:
bashdb.集合名.find({key:val}).sort({key:1}) # 1 升序,-1 将序 db.dog.find({dogKind:'边牧'}).sort({dogAge:-1}) # 按年龄将序
3.2.2.2.4 分页查询
-
语法:
bashdb.集合名.find({key:val}).limit(num).skip(start) # num:表示pageSzie , start:表示起始索引,默认为0 db.dog.find({dogKind:'边牧'}).limit(2).skip(1)
-
如下:
3.2.2.3 修改数据
-
语法如下:
bashdb.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 删除数据
-
根据指定的键值对条件:
bashdb.集合.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 操作符等其他更多文档
- 关于更多查询及操作符用法,参考下面的网站
https://www.mongodb.org.cn/manual/query-comparison/.
4. navicat链接
- 服务只要起着,直接连就行
- 连上之后查看数据:
- 可以使用命令查询:
- 也可以使用navicat自带的图形化查询
- 可以使用命令查询: