zoukankan      html  css  js  c++  java
  • 《MongoDB权威指南》读书笔记 第三章 创建、更新及删除文档

    一、插入并保存文档

    insert方法,如:db.foo.insert({'bar':'baz'})

    此操作会给文档增加一个"_id"键

    1、批量插入

      多个文档的插入时,使用批量插入比单个一次次插入会快,因为一次批量插入只消耗一个TCP请求,避免许多零碎请求带来的开销,当单个文档发送至数据库时,会有一个头部信息,如果不用批量,则产生多个头部信息以便数据库处理。当前版本mongoDB最大消息长度为16MB,所以插入时会有所限制。

    2、插入原理与作用
    当行插入时,驱动程序会将数据转换成BSON形式送入数据库,数据库对BSON进行解析、验证(是否有"id",不超过4MB),如果要开启有效性验证,在启动数据库时用--objcheck选项.

    3、删除文档
    db.users.remove()
    上述命令只删除users集合中的所有文档,索引会保留,删除数据是永久性的,不能撤销,也不能恢复。

    4、更新文档
    用update方法来修改文档

       (1)文档替换,适用于模式结构变化较大的情况

       (2)使用修改器

        $inc:自增一个值,inc是increments的缩写,可接受正负增量

      原文档{'uid':222, 'size':10}

       db.b.update({'uid':222},{"$inc":{"size":-1}})

       修改后{'uid':222, 'size':9}

       $set:指定一个键并更新值,若键不存在则创建

      原文档{'uid':222, 'size':10}

      db.b.update({'uid':222},{"$inc":{"size":-1}})

      修改后{'uid':222, 'size':-1}

      更新内嵌文档:

      原文档

     {'id':123, 'height':{'size':10}}

     修改 db.c.update({'id':123},{'$set':{'height.size':30}})

    修改后{'id':123, 'height':{'size':30}}

     $unset

     用来删除键

    数组修改器

      $push 

     向数组类型在最末尾添加数组元素,没有键则创建,可以有重复元素

     $pop

    向数组末尾或开头弹出元素,指示参数为1(开头)和-1(末尾)

     数组修改器还包括:$ne/$addToSet

     upsert

    一种特殊更新,在更新时没有些文档时则根据条件和文档在数据库中生成一份新文档.

    save

    在文档不存在时插入,存在时更新,只有一个参数文档

  • 相关阅读:
    Redis学习笔记
    Springboot + Tomcat跑项目出现端口被占用的问题
    按层打印二叉树
    打印二叉树的镜像——剑指offer
    判断树的子结构——剑指offer
    实习半个月的感想
    使用KMP算法判断是否为旋转词
    微信双开
    win10 右键添加cmd当前目录打开
    勒索邮件
  • 原文地址:https://www.cnblogs.com/bjdxy/p/2778036.html
Copyright © 2011-2022 走看看