一、windows上安装MongDB
下载资源及安装方式参考博客地址
https://blog.csdn.net/heshushun/article/details/77776706
二、添加root用户
- 添加用户
db.createUser(
{ user:“root”,
pwd:“123456”,
roles:[{role:“root”,db:“admin”}]
} );
- 查看数据库中所有的用户
db.system.users.find().pretty()
三、数据库的操作
-
命令行窗口启动客户端
mongo(前提是要将数据库安装目录添加到环境变量中)
-
查看当前的数据库
db
-
查看所有的数据库
show dbs /show databases -
创建数据库
use db_name -
切换数据库
use db_name
-
删除当前的数据库
db.dropDatabase()
三、集合的增删改查(类似于mysql中数据表的增删改查)
- 创建集合
向不存在的集合中第⼀次加⼊数据时, 集合会被创建出来
语法
db.createCollection(name[,options])
db.createCollection(“集合名”) # 无参
db.createCollection(“集合名”, { capped :true或false, size : 10 } ) # 有参
参数
capped: 默认值为false表示不设置上限,值为true表示设置上限
size: 当capped值为true时, 需要指定此参数, 表示上限⼤⼩,当⽂档达到上限时, 会将之前的数据覆盖, 单位为字节
-
查看集合
show collections
-
使用集合(此集合已存在)
db.集合名称.(find()/insert(),…) -
删除集合
db.集合名称.drop()
注:集合类似于mysql中的数据表
四、数据的增删改查
- 向集合中添加数据(类似于mysql中向数据表中添加数据)
(1) db.集合名.insert(document)
db.集合名称.insert({key1:value1,key2,value2}) # 不指定文档id
db.集合名称.insert({_id:‘value’,key1:value1,key2,value2}) # 指定文档_id
指定已经存在的_id
(2)db.集合名.save(document)
db.集合名称.save({key1:value1,key2,value2}) # 不指定文档id
db.集合名称.save({_id:‘value’,key1:value1,key2,value2}) # 指定文档_id
注:
①插⼊⽂档时, 如果不指定_id参数, MongoDB会为⽂档分配⼀个唯⼀的ObjectId
②文档_id类似于mysql中的主键id,用于标识集合中的唯一条数据
③insert方法插入数据时如果指定的文档_id已存在,插入时会报错
④save方法插入数据时如果指定的文档_id已存在,将会覆盖之前的_id数据
- 简单查询集合中所有的数据
(1) 查询集合中的所有数据
db.集合名称.find([条件])
(2)查询集合中的一条数据
db.集合名称.findOne([条件])
(3)美化结果
db.集合名称.findOne([条件]).pretty()
db.集合名称.find([条件]).pretty()
- 修改集合中的数据
db.集合名称.update( ,[,{multi: }])
参数:
query:查询条件
update:更新操作符
multi:可选, 默认是false,表示只更新找到的第⼀条记录, 值为true表示把满⾜条件的⽂档全部更新
eg:
不使用$set更新一条数据(所有的字段都会变动,修改为指定字段)
(相当于删除原来字段,添加新字段,但_id不变)
使用set更新一条数据
注
①使用set修改数据相当于只更改匹配到的某个字段,常用此方式更新
②不使用set修改数据相当于将匹配到的整条数据全部修改
③默认情况下multi=false,即只修改匹配到的第一条数据
④multi全部修改只能与$set修改方式使用
- 删除集合中的数据
db.集合名称.remove({query}[,{justOne: boolean}])
参数:
query:可选,删除的⽂档的条件
justOne:可选, 如果设为true或1, 则只删除⼀条, 默认false, 表示删除多条
默认删除所有匹配到的数据