• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
安安的BLOG
安安目前专注电子商务解决方案^_^
博客园    首页    新随笔    联系   管理    订阅  订阅

修改器 $inc 增加和减少

修改器  $inc

用来增加已有键的值,或者 键不存在时 创建键。

它 用来 专门 增加(或减少)数字的。

$inc 只能用于 整数 、 长整数 或 双精度浮点数 , 修改其他类型 会失败报错,即使其他多种语言中能自动转换的类型 (如:null , 布尔 或 数字构成字符串),都是不行的。 报错字符串 如下:

Modifier "$inc" allowed for numbers only

 

比如我们要统计某个网站的访问量

http://www.hao123.com/ 网站 访问量目前是 52 个。

> url = { "url" : "www.hao123.com" , "pageviews" : 52 }
{ "url" : "www.hao123.com", "pageviews" : 52 }
> db.analytics.insert(url)
> db.analytics.find()
{ "_id" : ObjectId("4fde916989834bfb0bd267a7"), "url" : "www.hao123.com", "pagev
iews
" : 52 }

这时候 有一个访问来了 用 $inc 自增修改器

> db.analytics.update({"url" : "www.hao123.com"},
... {"$inc" : {"pageviews":1} } )
> db.analytics.find()
{ "_id" : ObjectId("4fde916989834bfb0bd267a7"), "url" : "www.hao123.com", "pagev
iews
" : 53 }

看到变成了 53 个,这时发现 有两个的 是自己的测试访问次数 ,想减掉  $inc 自增修改器 可以支持 负数 。

> db.analytics.update({ "url" : "www.hao123.com"},
... {"$inc":{"pageviews":-2}})
> db.analytics.find()
{ "_id" : ObjectId("4fde916989834bfb0bd267a7"), "url" : "www.hao123.com", "pagev
iews
" : 51 }

 

 看修改好了 变成 51了。

 

使用修改器 注意点 :

1.  "_id" 不能修改。 (整文档更新 是可以修改  "_id" 键的)

2. 其他键 包含 唯一索引键 都是可以修改的。 

 

posted @ 2012-06-18 10:36  安安  阅读(555)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3