【MongoDB】入门
通过docker安装
docker run -d -p 27017:27017 --name mongo01 -v /docker/mongo/config:/data/configdb -v /docker/db:/data/dbmongo -e MONGO_INITDB_ROOT_USERNAME=admin -e MONGO_INITDB_ROOT_PASSWORD=admin123 mongo
进入mongo命令行模式
docker exec -it mongo01 mongosh
or
docker exec -it mongo01 bash
高版本的mongo使用
mongosh
,低版本的使用mongo
登录
use admin
db.auth('admin','admin123')
数据库命令
- 查询所有数据库
show dbs
- 查看当前连接使用哪个数据库
db
- 切换/创建数据库
如果数据库不存在,则创建并切换到该数据库,存在则切换到该数据库
use admin
- 删除数据库
先切换到指定数据库,然后执行以下命令
db.dropDatabase()
集合命令
- 查看所有集合
show collections
- 创建集合
db.createCollection(name, options)
name 要创建的集合名称
options参数:capped如果为true则创建固定集合(有着固定大小的集合);size为固定集合指定一个最大值,如果capped为true需要指定该字段;max 指定固定集合中包含文档的最大数量
db.createCollection("users")
db.createCollection("users",{capped:true,size:1024,max:100000})
- 删除集合
db.COLLECTION_NAME.drop()
文档命令
- 插入文档
db.COLLECTION_NAME.insert({}):
db.COLLECTION_NAME.insertOne({}):
db.COLLECTION_NAME.insertMany([{}...]):
- 查询文档
db.COLLECTION_NAME.find(query, projection)
query :可选,使用查询操作符指定查询条件
projection :可选,使用投影操作符指定返回的键。查询时返回文档中所有键值, 只需省略该参数即可(默认省略)。
# 查询指定collection全部文档
db.COLLECTION_NAME.find()
# 格式化输出查询
db.COLLECTION_NAME.find().pretty()
# 按条件查询
db.COLLECTION_NAME.find({'name':'fan'})
- 更新文档
db.collection.update(
<query>,
<update>,
{
upsert: <boolean>,
multi: <boolean>,
writeConcern: <document>
}
)
参数说明:
query : update的查询条件,类似sql update查询内where后面的。
update : update的对象和一些更新的操作符(如$,$inc...)等,也可以理解为sql update查询内set后面的
upsert : 可选,这个参数的意思是,如果不存在update的记录,是否插入objNew,true为插入,默认是false,不插入。
multi : 可选,mongodb 默认是false,只更新找到的第一条记录,如果这个参数为true,就把按条件查出来多条记录全部更新。
writeConcern :可选,抛出异常的级别。