update方法很强大,它有两个参数,一是查询文档,用来找出需要更新的文档,另一个是修改器(modifier)文档,描述对找到的文档做哪些修改。
亮点
更新操作是原子的,若两个更新同时发生,先到达服务器的现执行,接着执行另一个。所以,互相冲突的更新可以火速传递,并不会互相干扰,虽然这是一个拼速度的年代,但是后更新的会取得“胜利”(后发制人!)
因为使用原子的 更新修改器 进行更新操作极为高效,所以,就决定用它了!
$inc
例如:你需要存储一个网站的访问次数
db.web.insert({"url":"www.codingwhy.com","count":2}) { "_id" : ObjectId("55082435591555a6c35dd697"), "url" : "www.codingwhy.com", "count" : 2 }这时,可以用$inc来原子的增加(减少)count的值
db.web.update({"url":"www.example"},{$inc:{"count":1}}) { "_id" : ObjectId("55082435591555a6c35dd697"), "url" : "www.codingwhy.com", "count" : 3 }$inc指定是对数字的增减操作,count指定操作对象,1指定步长(正增负减)