增:
db.表名.insert({name:'lisi',age:24}); //插入单条
db.表名.insert([{name:'lili',age:20},{name:'xiao',age:21},{name:'wang',age:18}]); //插入多条
删:
db.表名.remove({name:'lisi'}); //删除所有 name 为 lisi 的数据
db.表名.remove({name:'lisi'},true); //删除 name 为 lisi 的数据(只删除一条,默认 false)
db.表名.remove(); //删除全部
改:
db.表名.update({name:'w'},{name:'x'}); //name 为 w 的改为 x,但是 如果这条数据还有 age等属性,也会消失(新文档直接替换旧文档,而不是修改)。
db.表名.update({name:'w'},{$set:{name:'x'}}); //修改单个字段
db.表名.update({name:'w'},{
$unset:{jingu:1}, //删除 jingu 属性(删除 jingu 列)
$rename:{sex:'gender'}, //重命名 sex 列
$inc:{age:16} //age 列增加 16
});
上述所有操作即使匹配多行,也只默认修改一行。
db.表名.update({name:'w'},{$set:{name:'x'}},{multi:true}); //修改单个字段(一次修改多行)
db.表名.update({name:'w'},{$set:{name:'x'}},{upsert:true}); //修改单个字段(没有此条数据,则插入)
db.表名.update({name:'w'},{$set:{name:'x'},$setOnInsert:{gender:'man'}},{multi:true}); //修改单个字段(没有此条数据,则插入。插入时加上 gender 属性一起插入。)此操作只能在 2.4 版本以上使用。
查:
db.表名.find(); //查询所有(数据量大的时候,只显示前 20 条,按 it 翻页)
db.表名.find({name:'w'}); //查询 name 等于 w的
db.表名.find({},{name:1}); //查询所有行数据中的 name 列(_id 属性默认查出来)
db.表名.find({},{name:1,_id:0}); //查询所有行数据中的 name 列(_id 属性不被查询)
db.表名.find({age:18},{name:1,_id:0}); //查询出所有 age 为 18 的 name 属性
db.表名.find().count(); //显示此表的数据总条数
db.表名.insert({name:'nokia',spc:{wight:120,area:'taiwan'}}); //根据子文档 area 怎么查?
db.表名.find({spc.area:'台湾'}); //子文档查询根据属性下面的产地查询
db.表名.findOne({name:'mongo'}); //根据条件查询出一条
db.表名.find().limit(3) //查询出 3 条