由于发现mongo更新太快,跟我之前所学有很多差异;尤其是聚合操作,比较早的版本只有group和mapreduce两个函数,不支持avg、max、min、sum这些操作,现在除了增加了这些常用操作以外还提供了更加丰富的聚合功能。
从这一篇开始将按照这个url里面的内容介绍:http://docs.mongodb.org/manual/reference/operator/。
撰写博客的顺序按照第二个页面里面的操作符字母顺序,将分别按照增、删、改、查、聚合四个主题更新博客文章。
在介绍到某个操作关键字时如果相关必要的方法还没有介绍,就插入一篇介绍这个方法的博文。
比如说第一个要介绍的是$addToSet,这个操作符,但是它只能用于update操作,而update在之前的博文中还没有介绍过,于是这一篇就介绍下update的相关参数。下一篇再介绍$addToSet
db.COLLECTION_NAME.update({},{},true|false,true|false);
第一个参数是查询选择器,与findOne的参数一样,相当于sql的where子句
第二个参数是更新操作文件,由各种更新操作符和更新值构成,
第三个参数是upsert。如果是true,表示如果没有符合查询选择器的文档,mongo将会综合第一第二个参数向集合插入一个新的文档。
第四个参数是multi。true:更新匹配到的所有文档,false:更新匹配到的第一个文档,默认值
第三第四个参数也可以合并成一个:
db.COLLECTION_NAME.update({},{},{multi:true|false,upsert:true|false});
拥有类似事务特性的更新与查询操作——findAndModify.
非常奇怪的是,在上面的链接里面没有找到这个函数的定义。
它是原子性的,会返回符合查询条件的更新后的文档。
一次最多只更新一个文档,也就是条件query条件,且执行sort后的第一个文档。
db.COLLECTION_NAME.findAndModify({query:{},
update:{},
remove:true|false,
new:true|false,
sort:{},
fields:{},
upsert:true|false});
query是查询选择器,与findOne的查询选择器相同
update是要更新的值,不能与remove同时出现
remove表示删除符合query条件的文档,不能与update同时出现
new为true:返回个性后的文档,false:返回个性前的,默认是false
sort:排序条件,与sort函数的参数一致。
fields:投影操作,与find*的第二个参数一致。
upsert:与update的upsert参数一样。
不论是update的第二个参数,还是findAndModify的update,在不指定更新操作符的情况下,将会用指定的新值替换旧值。
比如,
use iteye;
db.blog.update({_id:ObjectId('......')},{title:'new title'});
//上面的操作就把指定_id的文档的标题改成了‘new title’
如果指定了更新操作符,就可以实现更复杂灵活的更新操作。可以通过更新操作符,增加或减少数值,针对数组类型的属性,做类似队列或栈的操作。单从这一点来说,mongo要比sql数据库强大的多了。
$addToSet:http://runfriends.iteye.com/blog/1830751
相关推荐
windows下mongo客户端,MongoVUE-1.6.9 & 破解文件
mongo-java-driver-3.4.1.jar spring-data-commons-1.10.0.RELEASE.jar spring-data-commons-core-1.4.1.RELEASE.jar spring-data-mongodb-1.7.0.RELEASE.jar mongodb.xml mongodb.properties 补充说明:mongo服务器...
Noteet的后端记事本应用程序的后端 :person_tipping_hand: ,由expressjs制作如何使用叉它克隆它创建一个mongodb集群/数据库添加一个.env文件并插入: MONGO_USER = <在这里输入来自mongodb服务器的用户名> MONGO...
MONGO_CONNECTION_STRING = mongodb + srv:// $ {MONGO_USER}:$ {MONGO_PSW} @ $ {MONGO_SERVER} / $ {MONGO_DB}?retryWrites = true&w = majority ACCESS_TOKEN_SECRET = <在此处输入一个有助于您生成
安装 Mongo: brew update && brew install mongodb 安装 NPM: brew install npm 运行服务器 First, start the database locally, run 'mongod --dbpath ~/dev/db', where ~/dev/db is the location of the ...
Spring-Vue-Mongo-Crud Spring&Vue&MongoDB CRUD操作 执照 MIT License Copyright (c) 2021 Nejdet Kadir Bektaş Permission is hereby granted, free of charge, to any person obtaining a copy of this ...
阿里mongo同步工具mongo-shake
mongoVUE.1.6.9.破解文件,解压后覆盖安装目录中的MongoVUE.exe文件 安装文件下载地址:http://www.mongovue.com/downloads/
mongodb_exporter监控 https://github.com/dcu/mongodb_exporter.git 下19年4月的编译结果文件 编译很麻烦 ,注意修改文件的可执行权限
使用update-mongo界面,您可以轻松地为mongo shell编写脚本并在代码执行期间运行它们。 update-mongo允许您运行MongoDB的更新脚本,而无需与进行交互。 这是MIT许可下的一个开源项目,有关更多信息,请参见 。 跳...
1.分篇章进行学习,内容控制30分钟内 2.1个月疗程,不要放弃治疗哦 3.图文并茂,有问题请发到邮箱
欢迎下载MongoDB数据库驱动jar包——mongo-java-driver-2.10.0.jar
Mongo数据库连接工具,带破解批处理文件.3T支持的mongo功能很多
mongo 的版本一点区别 1.3以下与1.3以上版本update的第3个参数有变化,切记 mongo 版本 1.3以下 update($up,$arr,true); mongo 版本 1.3以上版本 update($up,$arr,array('upsert'=>true));
1 建立一个Mongo的数据库连接对象 Mongo mg new Mongo "127 0 0 1:27017" ; 查询所有的Database for String name : mg getDatabaseNames { System out println "dbName: " + name ; }
安装后将mongovue.exe替换系统安装的mongovue.exe就能免费使用mongovue所有功能。
MongoVUE1.6.9软件及其破解方法,本人亲测,可用
mongo客户端mongo客户端mongo客户端mongo客户端mongo客户端
MongoVUE是一个MongoDB在windwos下的客户端管理工具 MongoVUE是一个创新的MongoDB桌面应用Windows操作系统,给你一个优雅的、高度可用的GUI界面来使用MongoDB。...它给你3不同的看法——TreeView,TableView和TextView。
win10 vs2015update3 boost1.68环境下编译的mongo-cxx-driver-r3.5.1、mongo-c-driver1.16.2版本,里面直接包括mongo-cxx-driver-r3.5.1(头文件、lib(32\64))