设为首页 加入收藏

TOP

MongoDB创建,更新,删除文档(上)(二)
2014-11-24 03:16:04 来源: 作者: 【 】 浏览:2
Tags:MongoDB 创建 更新 删除 文档
pageViews":10000}}
)
使用"$inc"给键pageViews,再减少10000
db.users.update(
  {"url":"http://www.cnblogs.com/refactor"},
  {"$inc":{"pageViews":-10000}}
) www.2cto.com
"$inc"和"$set"用法相似,用来增加或减少数字."$inc"只能用于整数,长整数或双精度浮点数.
虽然很多语言能将 null,bool,有数字构成的字符串 转化成 数字,但使用"$inc"仍会报错:


"$inc"键的值也必须为数字.
数组修改器
"$push"和"$pop"只能用于数组.
如果指定的键已存在,"$push"会向已有的数组末尾加入一个元素,如果键不存在,就创建一个新数组.
如:
db.blog.insert(
  {
    "title":"refactor's blog",
    "Content":"refactor's blog test",
    "author":
    {
      "name":"refactor",
      "email":"295240648@163.com"
    }
  }
)
向以上文档中,添加一个包含一个数组的"comment"键,还向 comment 数组push一个评论.
这个数组会自动创建,并加入评论:
db.blog.update(
  {"title":"refactor's blog"},
  {
    $push:
    {
      "comments":
      {
        "name":"refactor2",
        "content":"nice"
      }
    }
  }
)
还想添加一条评论:
db.blog.update(
  {"title":"refactor's blog"},
  { www.2cto.com
    $push:
    {
      "comments":
      {
        "name":"refactor3",
        "content":"good"
      }
    }
  }
)
如果一个值不在数组里就把它加进去.可以在查询文档时使用"$ne".
使用"$addToSet"
db.users.insert(
  {
    "userName":"refactor",
    "emails":
    [
      "295240648@163.com",
      "295240648@126.com"
    ]
  }
)
向emails添加新地址,用"$addToSet"避免重复
db.users.update(
  {"userName":"refactor"},
  {
    "$addToSet":
    {
      "emails":"295240648@163.com"
    }
  }
)
这样"295240648@163.com" 不会插入到emails中
db.users.update( www.2cto.com
  {"userName":"refactor"},
  {
    "$addToSet":
    {
      "emails":"295240648@qq.com"
    }
  }
)
这样"295240648@qq.com" 会插入到emails中
将"$addToSet"和"$each"一起使用,可以添加不同的值.
db.users.update(
  {"userName":"refactor"},
  {
    "$addToSet":
    {
      "emails":
      {
        "$each":
        [
          "295240648@111.com",
          "295240648@112.com",
          "295240648@113.com"
        ]
      }
    }
  }
)
www.2cto.com
使用"$pop",可以从数组任何一端删除元素.
{$pop:{key:1}}从数组末尾删除一个元素
{$pop:{key:-1}}从数组头部删除一个元素
使用"$pull",可以根据特定条件删除元素,也可以根据位置删除元素
db.users.update(
  {"userName":"refactor"},
  {
    "$pull":
    {
      "emails":"295240648@111.com"
    }
  }
)
"$pull"会将所有匹配的部分删掉,对于数组[1,1,2,1]执行pull 1,得到的结果数组是[2]
作者 refactor
首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇数据源的作用 下一篇GPDB管理员笔记(五)GP系统配置

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C++中智能指针的性能 (2025-12-25 03:49:29)
·如何用智能指针实现c (2025-12-25 03:49:27)
·如何在 C 语言中管理 (2025-12-25 03:20:14)
·C语言和内存管理有什 (2025-12-25 03:20:11)
·为什么C语言从不被淘 (2025-12-25 03:20:08)