数据操作
1. 概念
集合 = 表
文档 = 表行数据
2. 操作
新增(集合不存在时会自动创建)
> db.集合.insert(json数据)
# 例如:
> db.test.insert({x:1})
# 动态插入数据
> for(i=3;i<100;i++)db.test.insert({x:i})
ps:可在插入时指定_id,例如: {x:2,_id:1}
ps:值可以使用new Date() 插入当前时间
数据查询
- 条件为空时返回所有记录
- 可跳过部分数据,相当于mysql的limit 后第一个参数
- 可限制查询条数,相当于mysql的limit 后第二个参数
- 可执行排序
> db.集合.find(条件)
# 例如{x:1}只查x:1的数据:
> db.test.find({x:1})
> db.test.find().skip(1).limit(2).sort({x:1})
# 查询1条
> db.tset.findOne()
例: db.test.find()
结果:{"_id": ObjectId("12378371791d987"),"x":1}
其中_id 为自动生成的唯一标示
ps: 排序的值 1 为顺序=asc -1 为逆序=desc
聚合查询
db.集合.find(条件).count()
数据更新
- 覆盖更新
db.集合.update(目标查询条件,更新后的内容)
#例:
> db.test.insert({x:1,y:2,z:3})
> db.test.update({x:1},{y:999})
#更新后 {y:999}
ps:mongo的覆盖更新,默认只覆盖更新第一条匹配的数据
例:
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.update({x:1},{x:999})
# 结果:{x:999},{x:1},{x:1}
- 部分属性更新
db.集合.update(目标查询条件,{$set:更新后的内容})
例:
> db.test.insert({x:1,y:2,z:3})
> db.test.update({x:1},{$set:{y:999}})
# 更新后 {x:1,y:999,z:3}
- 查找的数据不存在就创建一条
db.集合.update(目标查询条件,更新后的内容,true)
# 例:
> db.test.update({x:1},{y:999},true)
# 更新后 {y:999}
- 全量更新
db.集合.update(目标查询条件,{$set:更新后的内容},false,true)
ps:只能更新部分属性{$set:xx}
例:
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.update({x:1},{$set:{x:999}},false,true)
# 结果:{x:999},{x:999},{x:999}
- 数据删除
db.集合.remove(目标查询条件)
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.insert({x:1})
> db.test.remove({x:1})
# 结果:
ps:不允许不传参数(不能向查询全部那样)
- 集合删除(表删除)
db.集合.drop()
网友评论