查看数据库
show databases
选择数据库
use 数据库名
隐式创建,没有则自动创建
查看集合
show collections
创建集合
db.createCollection
删除集合
db.集合名.drop()
如何删除数据库?
-
通过use语法选中数据库
-
通过db.dropDatabase()删除数据库
mongodb集合中的数据增删改查
增
db.集合名.insert(JSON数据)
_id的生成
**自定义_id值 **
只需要插入的json数据增加_id即可覆盖(但实战强烈不推荐)
db.c1.insert({_id: '1',username: 'ht',age:18,sex: '女'})
**多条数据的插入 **
db.集合名.insert([
{username: 'hh',age: 12},
{username: 'aa',age: 13},
{username: 'bb',age: 14}
])
**如何快速插入10条数据 **
mongodb底层支持js写法
for(var i=0;i<10;i++) {print(i) }
需求:在c2集合中插入10条数据,分别为a0~a9
for(var i=0;i<10;i++){
db.c2.insert({username: 'a'+i,age: i})
}
查
db.集合名.find(条件,【,查询的列】)
条件
查询所有数据 {}或者不写
查询age=6的数据 {age:6}
既要age=6又要性别=男 {age: 6, sex: '男'}
查询的列(可选参数)
不写 - 这里查询全部列(字段)
{age: 1} 只展示age列(字段)
{age: 0} 除了age列(字段都显示)
留心:不管你怎么写,系统自定义的_id都会在
升级语法
db.集合名.find({键:值}) 注:值不直接写
{运算符: 值}
运算符 | 作用 |
---|---|
$gt | 大于 |
$gte | 大于等于 |
$lt | 小于 |
$lte | 小于等于 |
$ne | 不等于 |
$in | in |
$nin | not in |
练习1:查询所有数据
db.c1.find({}) | db.c1.find()
练习2:查询年龄大于5岁的数据
db.c1.find({age:{$gt:5}})
练习3: 查询年龄是5岁,8岁,10岁的数据
db.c2.find({age: {$in: [5,8,10]}})
练习4:只看年龄列,或者年龄以外的列(_id别管)
db.c1.find({},{age:1}) 只看年龄列
db.c1.find({},{age:0}) 看年龄以外的列
改
db.集合名.update(条件,新数据【,是否新增,是否修改多条】)
是否新增: 指条件匹配不到数据则插入(true是插入,false是不插入默认)
是否修改多条:指将匹配成功的数据都修改(true是,false否默认)
**升级语法 **
db.集合名.update.(条件,新数据)
{修改器:{键:值}}
运算符 | 作用 |
---|---|
$inc | 递增 |
$rename | 重命名列 |
$set | 修改列值 |
$unset | 删除列 |
准备工作
for(var i=0;i<10;i++){
db.c3.insert({username: 'a'+i,age: i})
}
练习1: 将a1的username改成a2
db.c3.update({username: 'a1'},{username: 'a2'})
发现:默认是替换,不是修改
解决: 使用升级语法 修改器
需求: 使用修改器将a3姓名改成a33
语法: db.c3.update({username: 'a3'},{$set:{username: 'a33'}})
练习2:给username为a4的年龄加10
db.c3.update({username: 'a4'},{$inc:{age:10}})
练习3: 修改器综合练习
完成需求:
1.username 改成 美少男 (修改器:
s
e
t
)
2.
a
g
e
增
加
111
(
修
改
器
:
set) 2.age 增加111 (修改器:
set)2.age增加111(修改器:inc)
3.who 改字段 sex (修改器:
r
e
n
a
m
e
)
4.
o
t
h
e
r
删
除
(
修
改
器
:
rename) 4.other 删除 (修改器:
rename)4.other删除(修改器:unset)
db.c4.insert({username: ‘美少女’,age: 888,who: ‘男’,other: ‘非国人’})
db.c4.update({username:'美少女'},{$set: {username:'美少男'},$inc: {age: 111},$rename: {who: 'sex'},$unset: {other: true}})
验证语法最后两个参数
【验证】是否新增: 修改username等于a30的年龄 30
db.c3.update({username: 'a40'},{$set:{age: 30}},true)
第三个参数为true,没有则添加,默认为false
【验证】是否修改多条
db.c3.update({},{$set: {age: 10}}, false,false) 默认只修改一个
db.c3.update({},{$set: {age: 10}}, false,true)
删
db.集合名.remove(条件,【,是否删除一条】)
注意是否删除一条true是,false否 默认