MongoDB学习笔记(一)
来源:互联网 发布:导入数据错误 编辑:程序博客网 时间:2024/05/16 15:03
一、插入
db.foo.insert({"bar" : "baz"});
?批量插入
二、删除
db.user.remove(); //将会删除user集合中的所有文档
db.mailing.list.remove({"out-put" : true}); //删除list集合中所有"out-put"属性为true的文档
三、更新
更新操作是原子的,若两个更新同时发生,则按照到达服务器顺序先后执行
替换:db.user.update({"name" : "joe"} , joe); //把user中name为"joe"的文档用新文档joe代替
需注意,若{"name" : "joe"}的查询条件返回的多个结果,替换可能会不成功,_id键不唯一。
修改器: db.analytics.update({"url" : "www.baidu.com"} , {"$inc" : {"pageviews" : 1}});//将pageviews属性的键值加1
"$inc"只能用于整数、长整数、双精度浮点数,其他(null,bool,数组构成的字符串)会导致操作失败。且$inc的键值也必须为数字
其他修改器:"$set" 指定一个键值,如果键不存在就创建它。可以指定一个与原数据类型不同的数据,比如将字符串更新为一个数组。
修改内嵌文档:db.user.update({"name" : "joe"} , {"$set" , {"address.country" : "china"}});
"$unset" 删除键
"$push" 若指定的键已存在,向该数组末尾加入一个元素,否则创建一个新数组
"$ne" 如果一个值不在数组里面就把它加进去,例:
db.papers.update({"author cited" : {"$ne" : "Rechiel"}} , {"$push" , {"author cited" : "Rechiel"}}); //如果"author cited"数组中没有"Richiel"就把它加入该数组。
"$addToSet" 无重复无序向数组添加元素,结合"$each"可一次添加多个。
db.user.update({"name" : "joe"} , {"$addToSet" : { "emails" : { "$each" :["joe@php.net" , "joe@java.net"]}}});
"$pop" {"$pop" : {"key" : 1}} 从数组末尾删除一个元素。 {"$pop" : {"key" : -1}}从数组开头删除一个元素。
"$pull" 删除特定元素。 db.user.update({"name" : "joe"} , {"$pull" : {"emails" : "joe@php.net"}});
根据数组下标修改: db.user.update({"name" : "joe"} , {"$inc" : {"comments.0.votes" : 1}}); //评论数组下标为0的元素的投票数加1
定位操作符:db.user.update({"comments.author" : "john"} , {"$set" : {"comments.$.author" : "jim"}}); //将评论数组中作者为john的改为作者为jim
定位符只更新第一个匹配的元素。
MongoDB预留了些补白给文档,以适应大小变化,但是要超出的原来的空间,还是要分配一块新的空间。空间分配会减慢速度,而且随着数组边长MongoDB需要更长的时间遍历整个数组,对每个数组的修改也会慢下来
upsert: 更新时若没有查找到符合条件的文档,则创建新文档并在新文档的基础上进行更新操作。用法是为在update函数最后添加true作为第三个参数。
如:db.math.update({"count" : 12} , {"$inc" :{"count" : 3}} , true); //若没有找到count为12的文档,则创建新文档(count为12)并将count加3。(最终15)
更新多个文档:默认情况下,更新只对符合匹配的第一个文档执行操作。若要使所有匹配的文档都得到更新,可是设置update的第四个参数为true。
建议每次更新都显式的指定第四个参数,以应对将来可能的默认参数的改变。
- MongoDB学习笔记(一)初识MongoDB
- MongoDB 学习笔记(一)
- MongoDB 学习笔记(一)
- MongoDB学习笔记(一)
- mongodb学习笔记(一)
- MongoDB学习笔记(一)
- MongoDB学习笔记(一)
- MongoDB学习笔记(一)
- MongoDB学习笔记(一)
- mongodb 学习笔记一
- mongodb学习笔记一
- MongoDB学习笔记《一》
- mongodb学习笔记一
- MongoDB学习笔记(一)
- MongoDB学习笔记<一>
- Mongodb学习笔记一
- MongoDB 学习笔记一
- Mongodb学习笔记(一)
- 人工智能
- OK6410A 驱动程序测试-leds
- Boost::Asio一个简单的Echo服务器
- Opencv 完美配置攻略 2014 (Win8.1 + Opencv 2.4.8 + VS 2013)
- Rails4.2新特性学习
- MongoDB学习笔记(一)
- MATLAB————拟合工具箱
- Python中的生产者消费者问题
- day25_GUI
- 使用 HTML5 WebSocket 构建实时 Web 应用
- Diagram to show Java String’s Immutability
- 一年
- 如何查看sql2005数据库的端口号
- The substring() Method in JDK 6 and JDK 7