增
语法:db.集合名.insert(JSON数据)
说明:集合存在,则直接插入数据,集合不存在-隐式创建
练习:在test2数据库的c1集合中插入数据(名字叫:张三 年龄18岁)
1 2 3 4 5
| use test2 db.c1.insert({uname:'张三',age:18}) 注意1:数据库和集合不存在都隐式创建 注意2:对象的键统一不加引号方便看,但是查看集合数据时系统会自动加 注意3:mongodb会给每条数据增加一个全球唯一的_id键,由时间戳、机器、PID、和计数器决定
|

是否可以自定义_id?
1 2
| 回答:可以,只需要给插入的JSON数据增加_id键即可覆盖(但强烈不推荐) db.c1.insert({_id:1,uname:'lisi',age:19})
|

如何一次性插入多条数据
1 2 3 4 5 6
| 回答:传递数据,数组中写一个个json数据即可 db.c1.insert([ {uname:'q1',age:3}, {uname:'w2',age:4}, {uname:'e3',age:5} ])
|

如何快速插入10条数据
1 2 3 4 5 6 7 8 9 10
| 回答:mongodb底层使用JS引擎实现的,所以支持部分js语法 因此,可以写for循环 for(var i=0;i<=10;i++){ print(i); } 需求:在test2数据库c2集合中插入10条数据,分别为a1 a2 a3...a10 use test2 for(var i=1;i<=10;i++){ db.c2.insert({uname:"a"+i,age:i}) }
|

查
基础语法:db.集合名.find(条件 [,查询的列])
1 2 3 4 5 6 7 8 9
| 条件 查询所有数据 {}或者不写 查询age=6的数据 {age:6} 既要age=6又要性别=男 {age:6,sex:'男'} 查询的列(可选参数 不写-查询全部列(字段) {age:1} 只显示age列(字段) {age:0} 除了age列(字段都显示) 注意:不管怎么写系统自定义的_id都会在
|
升级语法
1 2 3 4 5
| db.集合名.find(键:值) 注:值不直接写 {运算符:值} db.集合名.find({ 键:{运算符:值} })
|
运算符 |
作用 |
$gt |
大于 |
$gte |
大于等于 |
$lt |
小于 |
$lte |
小于等于 |
$ne |
不等于 |
$in |
in |
$nin |
not in |
练习1:查询所有数据

练习2:查询年龄大于5岁的数据

练习3:查询年龄是5岁、8岁、10岁的数据

改
基础语法:db.集合名.update(条件,新数据[,是否新增,是否修改多条])
1 2
| 是否新增:指条件匹配不到数据则插入(true是插入,false否则不插入) 是否修改多条:指将匹配成功的数据都修改(true是,false否默认)
|
升级语法:
1 2
| db.集合名.update(条件,新数据) {修改器:{键:值}}
|
修改器 |
作用 |
$inc |
递增 |
$rename |
重命名列 |
$set |
修改列值 |
$unset |
删除列 |
准备工作
1 2 3 4
| use test2; for(var i=1;i<=10;i++){ db.c3.insert({"uname":"zs"+i,"age":i}); }
|
练习1:将zs1的数据改为zs2

1 2 3 4
| 默认不是修改,而是替换 解决:使用升级语法 修改器 需求:使用修改器将zs3的性名改为zs33 语法:db.c3.update({uname:"zs3"},{$set:{uname:"zs33"}})
|

练习2:给{uname:”zs10”}的年龄加2岁或者减2岁


练习3:修改器综合练习
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| 插入数据:db.c4.insert({uname:"神龙教主",age:888,who:"男",other:"非国人"}); 完成需求: uname:改成金轮法王 (修改器:$set) age:增加111 (修改器:$inc) who改字段sex (修改器:$rename) other删除 (修改器:$unset) 语法分析: db.c4.update({uname:"神龙教主"},{$set:{uname:"金轮法王"}}) {$inc:{age:111}} {$rename:{who:"sex"}} {$unset:{other:true}} 注意:如何一次性写多个修改器 db.c4.update({uname:"神龙教主"}, {$set:{uname:"金轮法王"}, $inc:{age:111}, $rename:{who:"sex"}, $unset:{other:true} })
|

练习4:验证语法最后两个参数(了解)
验证:是否新增true是false否:修改uname等于zs30的年龄 30岁

验证:是否修改多条,true是,false否

删
语法:db.集合.remove(条件,[,是否删除一条])
注意:是否删除一条,true是,false否 (默认)

增删改查总结
增Create
删Delete
1 2
| db.集合名.remove(JSON数据,[,是否删除一条true是false否默认]) 也就是默认删除多条
|
改Update
1 2
| db.集合名.update(条件,新数据 [,是否新增,是否修改多条]) 升级语法db.集合名.update(条件,{修改器:{键:值}})
|
查Read