
关于安装建议参考中文文档,各操作系统的安装都有了
MongoDB 中文手册.
上面文档可能不是根据最新版本定的,所以,如果想安装最新版本的,可以参考官方英文网站,如下:
https://www.mongodb.com/docs/manual/tutorial/install-mongodb-on-os-x/.
brew 进行安装的,具体请看下面步骤。brew ,如果没有安装的,请移步下面的文章:brew update
brew tap mongodb/brew

brew install mongodb-community@7.0
brew list


brew --prefix


brew services stop mongodb-community@7.0
brew services list

brew services stop mongodb-community@7.0
ps -ef | grep mongodb

lsof -i | grep 24403

lsof -i:27017

http://127.0.0.1:27017/

mongosh

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

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()

db.dog.insert({})
db.dog.insertOne({})
db.dog.insert({dogNum:'A-1001',dogName:'麦兜',dogAge:3,dogKind:'边牧'})
db.dog.insertOne({dogNum:'A-1002',dogName:'泡泡',dogAge:5,dogKind:'柯基'})
db.dog.insert([{},{}])
db.dog.insert([{dogNum:'A-1003',dogName:'大牙',dogAge:2,dogKind:'边牧'},{dogNum:'A-1004',dogName:'闪闪',dogAge:8,dogKind:'秋田'}])


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 满足条件之一即可


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:'兜$'}})


db.集合名.find({key:val}).sort({key:1}) # 1 升序,-1 将序
db.dog.find({dogKind:'边牧'}).sort({dogAge:-1}) # 按年龄将序

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

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}}) # []可以去掉
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']}}) # 删除满足条件的数据



