SQL与MongoDB对比,不同点
查询数据库
show dbs查询全部数据
db 显示当前数据库
2.创建数据库
use Database_Name
没有这个库,自动创建
集合
1.创建集合
db.createCollection("student")
2.删除集合
db.student.drop()
文档
插入文档
MongoDB中文档的格式是json格式,下边就是一个文档,包括key:_id主键和name
db.student.insert({
"name":"binglian",
"age":18
})
插入命令
仔细看一下 我两次插入的内容不一样, 第一次没有age,第二次有,MySQL没有age这个行就不能插入,所以MongoDB较为灵活
更新
1.替换符合条件"name":"binglian"的第一个文档替换为"name":"binglian1"
db.student.update({"name":"binglian"},{"name":"binglian1","age":19})
只改变了第一个
2.set修改
上面只能修改第一个文档,这个可以修改多个
multi:true 修改为false就是修改第一个
> db.student.update({"name":"binglian"},{$set:{"name":"binglian1","age":20}},{mu
lti:true})
整体的都修改了
删除文档
命令格式
db.student.remove(<query>)
query:删除条件,相当于sql语句中的where
1.删除所有的文档
db.student.remove({})
2.删除符合条件的文档
db.student.remove({"name":"binglian"})
查询文档
db.collection.find(query,projection)
query:查询条件,可不填
projection:投影查询key,可不填
查询所有
db.student.find()
查询符合条件的记录
db.student.find({"name":"binglian1"})
投影查询
只显示name和age两个key,_id主键不显示
db.student.find({"name":"binglian1"},{name:1,age:1,_id:0})
用户
1.创建用户
db.createUser(
{
user:"<name>",
pwd:"<cleartext password>",
customData:{<any information>},
roles:[
{role:"<role>",da:"<database>"} | "<role>",
...
]
}
)
列子:
创建root用户,角色为root
db.createUser(
{
user:"root",
pwd:"root",
roles:[{role:"root",db:"admin"}]
}
)
1.数据库用户角色:read、readWriter;
2.数据库管理角色:dbAdmin、dbOwner、userAdmin;
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
4.超级用户角色:root
等等
查询用户
查询当前库下的所有用户
show users