1. 数据库相关
-
查询全部数据库
show dbs -
显示当前数据库
db -
创建/选择数据库
use database_name
-
删除数据库
use database_name //选择数据库
db.dropDatabase()
2. 集合相关(相当于关系型数据库中的表)
- 创建集合 (在 MongoDB 中,你不需要创建集合。当你插入文档时,MongoDB 会自动创建集合)
db.createCollection(name, [options])
name: 新创建的集合名称
options: 可选参数 , { capped : true, autoIndexId : true, size : 6142800, max : 10000 } -
删除集合
db.collection.drop()
例: db.student.drop() //删除student集合
-
查询所有集合
show collections
3. 文档相关(相当于关系型数据库中的一条数据)
- 插入文档
db.collection_name.insert(document)
例: db.student.insert({"name":"张三","age":"26","sex":"male"})
- 更新文档
(1)、替换文档
db.collection.update()
例: db.student.update({"name":"张三","age":"26","sex":"male"},{"name":"张三","age":"25","sex":"male"})
(2)、$set修改器
db.collection.update({条件},{$set:{修改的内容}})
例: db.student.update({"name":"张三"},{$set:{"name":"李四","sex":"female"}},{multi:true})
multi: false表示更新第一个匹配的文档,true表示更新所有匹配的文档。
- 删除文档
(1)、删除所有文档
db.student.remove({})
(2)、删除符合条件的文档
db.student.remove(<query>)
<query>:删除条件,相当于sql语句中的where
例:db.student.remove({"name":"李四"})
- 查询文档
(1)、 查询全部
db.student.find()
(2)、条件查询
db.collection.find(<query>)
<query>: 查询条件,可不填
例:db.student.find({"name":"张三"})
(3)、投影查询
db.collection.find(<query>,<projection>)
<projection>: 投影查询key,可不填
例:只显示name和age两个key,_id主键不显示,1表示显示,0表示不显示
db.student.find({"name":"张三"},{name:1,age:1,_id:0})
- 统计记录数
db.student.count({"age":"25"})
- 模糊查询
MongoDB的模糊查询是通过正则表达式的方式实现的
例:
db.student.find({"name":/三/})
db.student.find({"name":/^张/})
- 大于 小于 等于 不等于
db.collection_name.find({ "field" : { $gt: value }}) // 大于: field > value
db.collection_name.find({ "field" : { $lt: value }}) // 小于: field < value
db.collection_name.find({ "field" : { $gte: value }}) // 大于等于: field >= value
db.collection_name.find({ "field" : { $lte: value }}) // 小于等于: field <= valu
db.collection_name.find({ "field" : { $ne: value }}) // 不等于: field != value
例:
db.student.find({"age":{$gte: "18"}}) //查询年龄大于等于18岁的学生
- 包含与不包含 (使用 $in 与 $nin 操作符)
db.student.find({_id:{$in:["1","2","3"]}})
db.student.find({_id:{$nin:["1","2","3"]}})
- 条件连接
$and:[ { },{ },{ } ]
$or:[ { },{ },{ } ]
例:
db.student.find({$and:[ {_id:"1"}, {age:{$gte:18}} ]}) //查询id=1并且年龄大于等于18岁的学生
db.student.find({$or:[{_id:"1"},{_id:"3"}]}) //查询id=1或者id=3的学生
- 列值增长((使用 $inc 操作符)
db.collection_name.update({条件},{$inc:{ "field" : NumberInt(1) }})
例:
db.student.update({_id:"2"},{$inc:{age:NumberInt(1)}) //更新id=2的学生年龄加1
4. 用户相关
-
创建用户
use admin
db.createUser(
{
user:"zhangsan",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
)
内置角色如下:
(1)、 数据库用户角色:read、readWrite;
(2)、数据库管理角色:dbAdmin、dbOwner、userAdmin;
(3)、集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
(4)、备份恢复角色:backup、restore;
(5)、所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、
dbAdminAnyDatabase
(6)、超级用户角色:root
-
认证登录
为了安全需要,Mongodb要打开认证开关,即用户连接Mongodb要进行认证,其中就可以通过账号密码方式进行
认证。
(1)、在mongo.conf中设置 auth=true
(2)、重启Mongodb
(3)、使用账号和密码连接数据库
mongo.exe ‐u root ‐p 123456 ‐‐authenticationDatabase admin
-
查询用户
show users
-
删除用户
db.dropUser("用户名")
例:db.dropUser("zhangsan")
-
修改用户
use admin
db.updateUser(
"zhangsan",
{
user:"lisi",
pwd:"123456",
roles:[{role:"root",db:"admin"}]
}
)
-
修改密码
db.changeUserPassword("username","newPasswd")
例:
use admin
db.changeUserPassword("zhangsan","123321")
5. MongoDB与MySql的比较
MongoDB | MySql |
集合 | 表 |
文档 | 行 |
字段 | 列 |
嵌入文档或链接 | joins |