插入(表:user)
插入文档
db.user.insert({name:"test1",class:"08级小鲜肉"})
#####批量插入文档shell中MongoDB中不不存在批量插入数据,想完成批量插入可以用MongoDB的应用驱动或是shell的for循环操作
save操作
save操作和insert操作区别相当于遇到_id相同情况下save会完成保存insert会报错
删除
删除所有数据
db.user.remove()
集合会删除但是索引不会被删除
根据条件删除
db.user.remove({条件})
如果你想清除一个数据量十分庞大的集合直接删除该集合并且重新建立索引的办法比直接用remove的效率高很多
修改
强硬的数据替换式更新操作
db.user.update({查询条件},{结果值}) 直接将源数据覆盖(相当于MySQL中先删除 后插入的效果)
db.user.update({查询条件},{$set:{结果}}) 只将结果值用相同键的数据覆盖
相当于MySQL中的 set语句
例如:db.user.update({"name":"test1"},{"class":"软件工程"})
因为是强制替换当前的数据和已有的数据ID冲突的时候则系统会报错
insertOrUpdate
db.user.update({查询器},{结果值},true) 当第三个参数设置为true时 查询器查出结果就执行更新操作,查不出来执行插入操作
若是结果值里的数据有ID重复也会报错
批量更新
db.user.update({查询器},{set:{结果值}},true,true) 当第四个参数为true则为批量操作
默认为false 只修改第一个数据
修改器($语法部分省略)
修改器名称 | 语法 | 解释 |
$set | {set:{field:value}} | 用来指定一个键值对如果存在就进行修改 不存在则添加 |
$inc | {inc:{field:num}} | 如果field字符类型为数字,可以为field数值进行加减操作 num为:1 增加1 为-1:减1 |
$unset | {unset:{fidld:1}} | 删除指定的键 |
$push | {push:{field:vaule}} | 为指定的键(数组格式)追加新的值 若不存在指定的键则创建数组类型键值对 若键不为数组则报错 |
$pushAll | {pushAll:{field:array}} | 添加数组数据 |
$addToSet | {addToSet:{field:value}} | 若目标field数组中不存在value时才加入 |
$pop | {pop:{field:value}} | 从指定数组中删除值 1:删除最后一个 -1:删除第一个 |
$pull | pull:{field:value} | 从指定数组中删除value值 |
$pullAll | pull:{field:value,value2} | 从指定数组中删除value值 可以批量 |
$ | 回头在写 | 回头在写 |