MongoDB笔记(三):Document 数据插入、删除、更新
2014-04-12 15:13
537 查看
实例数据库caliven、集合users
一、插入文档
1.插入文档
db.[documentName].insert({})
2.批量插入文档 、shell 这样执行是错误的db.[documentName].insert([{},{},{},……..]) shell不支持批量插入,
想完成批量插入可以用mongo的应用驱动或是shell的for循环:
for(var i=0; i<=10;i++){
db.[documentName].insert({name:i})
}
3.Save操作:save操作和insert操作区别在于当遇到_id相同的情况下,save完成保存操作,insert则会报错。
二、删除文档
1.删除列表中所有数据
db.[documentName].remove()
集合的本身和索引不会别删除
2.根据条件删除
db.[documentName].remove({})
删除集合users中name等于Tom的纪录 db.users.remove({name:”Tom”})
3.小技巧:如果你想清除一个数据量十分庞大的集合,直接删除该集合并且重新建立索引的办法,比直接用remove的效率和高很。
三、更新文档
1.强硬的文档替换式更新操作
db.[documentName].update({查询器},{修改器})
强硬的更新会用新的文档代替老的文档
2.主键冲突的时候会报错并且停止更新操作
因为是强硬替换当替换的文档和已有文档ID冲突的时候则系统会报错
3.insertOrUpdate操作
目的:查询器查出来数据就执行更新操作,查不出来就替换操作
做法:db.[documentName].update({查询器},{修改器},true)
4.批量更新操作
默认情况当查询器查询出多条数据的时候默认就修改第一条数据
如何实现批量修改:db.[documentName].update({查询器},{修改器},false, true)
5.使用修改器来完成局部更新操作
一、插入文档
1.插入文档
db.[documentName].insert({})
2.批量插入文档 、shell 这样执行是错误的db.[documentName].insert([{},{},{},……..]) shell不支持批量插入,
想完成批量插入可以用mongo的应用驱动或是shell的for循环:
for(var i=0; i<=10;i++){
db.[documentName].insert({name:i})
}
3.Save操作:save操作和insert操作区别在于当遇到_id相同的情况下,save完成保存操作,insert则会报错。
二、删除文档
1.删除列表中所有数据
db.[documentName].remove()
集合的本身和索引不会别删除
2.根据条件删除
db.[documentName].remove({})
删除集合users中name等于Tom的纪录 db.users.remove({name:”Tom”})
3.小技巧:如果你想清除一个数据量十分庞大的集合,直接删除该集合并且重新建立索引的办法,比直接用remove的效率和高很。
三、更新文档
1.强硬的文档替换式更新操作
db.[documentName].update({查询器},{修改器})
强硬的更新会用新的文档代替老的文档
2.主键冲突的时候会报错并且停止更新操作
因为是强硬替换当替换的文档和已有文档ID冲突的时候则系统会报错
3.insertOrUpdate操作
目的:查询器查出来数据就执行更新操作,查不出来就替换操作
做法:db.[documentName].update({查询器},{修改器},true)
4.批量更新操作
默认情况当查询器查询出多条数据的时候默认就修改第一条数据
如何实现批量修改:db.[documentName].update({查询器},{修改器},false, true)
5.使用修改器来完成局部更新操作
修改器名称 | 语法 | 案例 |
$set | {$set:{field: value}} | {$set:{name:”uspcat”}} |
它用来指定一个键值对,如果存在键就进行修改不存在则进行添加. | ||
$inc | { $inc : { field : value } } | { $inc : { "count" : 1 } } |
只是使用与数字类型,他可以为指定的键对应的数字类型的数值进行加减操作. | ||
$unset | { $unset : { field : 1} } | { $unset : { “name":1 } |
他的用法很简单,就是删除指定的键 | ||
$push | { $push : { field : value } } | { $push : { books:”JS”} |
1.如果指定的键是数组增追加新的数值 2.如果指定的键不是数组则中断当前操作Cannot apply $push/$pushAll modifier to non-array 3.如果不存在指定的键则创建数组类型的键值对 | ||
$pushAll | { $pushAll : { field : array } } | { $push : { books:[“EXTJS”,”JS”]} |
用法和$push相似他可以体谅添加数组数据 | ||
$addToSet | { $addToSet: { field : value } } | { $addToSet: { books:”JS”} |
目标数组存在此项则不操作,不存在此项则加进去 | ||
$pop | {$pop:{field: value}} | {$pop:{name:1}} {$pop:{name:-1}} |
从指定数组删除一个值1删除最后一个数值,-1删除第一个数值 | ||
$pull | { $pull: { field : value } } | { $pull : { “book" : “JS” } } |
删除一个被指定的数值 | ||
$pullAll | { $pullAll: { field : array} } | { $pullAll: { “name":[“JS”,”JAVA”] } |
一次性删除多个指定的数值 | ||
$ | { $push : { field : value } } | { $push : { books:”JS”} |
1.数组定位器,如果数组有多个数值我们只想对其中一部分进行操作我们就要用到定位器($) 例子: 例如有文档{name:”YFC”,age:27,books:[{type:’JS’,name:”EXTJS4”},{type:”JS”,name:”JQUERY”},{type:”DB”,name:”MONGODB”}]} 我们要把type等于JS的文档增加一个相同的作者author是USPCAT 办法: db.text.update({"books.type":"JS"},{$set:{"books.$.author":"USPCAT"}}) |
相关文章推荐
- sql插入数据,更新数据,删除数据
- mySQL教程 第5章 插入 更新与删除数据
- mysql 数据插入、更新、删除
- MSSQL 中使用modify()方法,此方法使用XML DML语句在XML 数据中插入,更新或删除节点
- php+mysqli实现批量执行插入、更新及删除数据的方法
- 使用java连接mysql数据库进行数据的查询插入更新及删除
- Hibernate 数据的批量插入、更新和删除
- 《MySQL入门很简单》学习笔记(11)之第11章插入、更新与删除数据(关键词:数据库/MySQL/插入数据/更新数据/删除数据)
- MySQL(四) 数据表的插入、更新、删除数据
- EntityFramework 5.0 CodeFirst 教程04-查询,插入,更新,和删除数据
- Scott Mitchell 的ASP.NET 2.0数据教程之十六::概述插入、更新和删除数据
- <java><JTable>使用AbstractTableModel实现更新、删除、插入数据
- ArcEngine开发_添加字段,数据删除,插入,更新细节
- 对象标识符和对象引用+对象标识符+对象引用+为对象引用插入数据+查询对象引用OID对应的实际值+更新对象引用+删除对象引用
- 七、MySQL插入、更新与删除数据
- Oracle查询优化-04插入、更新与删除数据
- Hibernate 数据的批量插入、更新和删除
- 数据库数据插入 更新 删除
- 【SQL Server】学习笔记2—插入数据、删除数据、更新数据
- mySQL教程 第5章 插入 更新与删除数据