1.增加insert
插入多笔数据
db.stu.insert([{_id:3,sn:'003',name:'zhangfei'},{_id:4,sn:'004',name:'guanyu'},{sn:'005',name:'liubei'}])
增加复杂的文档
db.stu.insert({name:{x:'li',m:'shiming'},jl:['war','kill']})
2.删delete
db.stu.remove({sn:'001'}) 删除指定条件的数据
db.stu.remove({}) 删除所有数据
db.stu.remove('条件',true) 删除一行数据
3.改update
修改时的赋值表达式
$set 修改某列的值
$unset 删除某个列
$rename 重命名某个列
$inc 增长某个列
将lisi 改为 dalang
db.user.update({name:'lisi'},{$set:{name:'dalang'}})
测试修改某个列值,删除某个列,重命名某个列,增长某个列
db.user.update(
{name:'wukong'},
{
$set:name:′dzsf′,
$unset:{jingu:1},
$rename:sex:′gender′,
$inc:{age:16}
}
);
Option的作用
{upsert:true/false,multi:true/false}
upsert是指没有匹配的行,则直接插入该行
multi是指是否要改多行
db.user.update({age:10},{$set:{age:11}}) #此时只能改一行
db.user.update({age:10},{$set:{age:11}},{multi:true}) #此时可以修改多行
db.user.update({name:'wuyong'},{$set:{name:'junshiwuyong'}},{upsert:true}) #如果不存在就插入
setOnInsert 当upsert为true时,并且发生了insert操作时,可以补充的字段,setOnInsert只有在upsert设置为true,并且被更新的文档不存在此集合中,需要插入一个新的文档的时候才起作用。在插入的时候会为新插入的文档添加给定的字段.
4.查select
查询条件:
$lt <
$lte <=
$gt >
$gte >=
$ne <>
$or or
$in in
$nin not in
$not 元运算语句,可以用在其他任何条件之上
$mod 取模运算
(1).只查特定的列(id属性是默认查出来的,如果不需要则可以这样db.user.find({},{age:1,_id:0}))
db.user.find({},{age:1})
(2).查询条件为songzi 的 age列,并且结果中不包括_id列
db.user.find({name:'songzi'},{age:1,_id:0})
(3).查询年龄>=11 <=23的数据
db.user.find({age:{$gte:11,$lte:23}})
(4).查找2016年4月后创建的数据
向表中增加字段createtime
times=new Date('2016/09/20')
db.user.update({},{$set:{createtime:times}},{multi:true})
修改表createtime的值
db.user.update({name:'zhansan'},{$set:{createtime:new Date('2016/08/20')}})
现在查找满足条件的数据
db.user.find({createtime:{$gt:new Date('2016-04-01')}},{_id:0})
(5).查找不等于'dalang'的数据
db.user.find({name:{$ne:'dalang'}})
(6).查找'dalang','songzi'
db.user.find({name:{$in:['dalang','songzi']}})
(7).查找不是'dalang','songzi'
db.user.find({name:{$nin:['dalang','songzi']}})
(8).查找name是'dalang','songzi' 或者 age是11岁的 数据(or 和 in 混合使用)
db.user.find({$or:[{name:{$in:['dalang','zhansan']}},{age:11}]})
(9).not和mod的混合使用
查找取模为1的数据
db.goods.find({cat_id:{$mod:[3,1]}},{cat_id:1,_id:0})
反之查找取模为0的
db.goods.find({cat_id:{$mod:[3,0]}},{cat_id:1,_id:0})
或者
db.goods.find({cat_id:{$not:{$mod:[3,1]}}},{cat_id:1,_id:0}) #目前是错误的
(10).like的实现(mongodb用正则表达式实现)
查找name中有an数据
db.user.find({name:/an/}) # select * from user where name like '%an%'
查找name中以z开头的数据
db.user.find({name:/^z/}) # select * from user where name like 'z%'
(11).不区分大小写,搜索name中有chen的数据
db.user.find({name:/chen/i},{name:1,age:1,createtime:1,_id:0})