美文网首页
第八章 使用MongoDB shell将文档保存到集合中

第八章 使用MongoDB shell将文档保存到集合中

作者: 蚂蚁闲游 | 来源:发表于2017-10-12 14:26 被阅读0次

    方法save(), 这个方法的效率比insert() 和 update()的效率要低,但是它在有些情况下更容易使用。如:
    修改从MongoDB检索的对象时, 可使用方法save()而不是update(),这样无需指定query和update对象。
    方法save()的语法如下,其中参数doc是一个要保存到集合中的文档对象:
    save()
    实操说明:

    • 在使用save()方法时, 必须需要先使用查询方法查询出某文档,再进行操作。
    • 针对查询出来的文档,可以进行添加内容,应该也可以删除内容。
      update()
      需要用的到的函数操作:

    执行更新操作时可在update对象中指定的运算符

    运算符 描述
    $inc 将字段值增加指定的量,格式为“ field:inc_value”
    $rename 重命名字段,格式为:field:new_name
    $setOnInsert 在更新操作中新建文档时设置字段的值,格式为:field:value, 注: 这个函数操作必须要在upsert为ture时生效
    $set 设置既有文档的字段值,格式为field:new_new
    $unset 从既有文档中删除指定字段,格式为:field:""
    $ 充当占位符,更新与查询条件匹配的第一个元素
    $andToSet 在既有的数组中添加元素(如果这些元素没有包含在数组中),格式为:array_field:new_value
    $pop 删除数组的第一个或最后一个元素。如果pop_value为-1,则删除第一个元素;如果pop_value为1,则删除最后一个元素。格式为:array_field:pop_value
    $pullAll 从数组中删除多个值。要删除的值是以数组方式指定的。格式为array_field:[value1,value2...]
    $pull 从数组中删除与查询条件匹配的元素,其中查询条件是一个基本的查询对象,指定了字段名和匹配条件。格式:array_field:[<query>]
    $push 在数组中添加一个元素。对于简单数组,格式为array_field:new_value;对于对象数组,格式为array_field:{field:value}
    $each 用于运算符$push和$addToSet 的限定符,用于在数组中添加多个元素。格式为array_field:{$each:[value1,...]},一般会与$addToSet方法配合使用
    $slice 用于运算符$push的限定符,用于限制更新后的数组长度。格式为array_field:{$slice:<num>}
    $sort 用于运算符$push的限定符,用于将数组中的文档重新排序
    $bit 对整数值执行按位与和或运算。 格式为format:integer_field:{and:<integer>} 和 integer_field:{or:<integer>}

    说明$slice 函数说明:

    {
      $push:{
          <field>: {
             $each: [<value1>,<value2>,....],
             $slice: <num>
          }
      }
    }
    

    说明$sort函数在update方法里面的使用:

    {
       $push:{
            array_field:{
                $each:[value1,value2,....],
                $slice: x,
                $sort: 1 // 1表示正序;-1表示倒序
            } 
        }
    }
    

    update方法, 有四个参数:

    • query
    • 具体的操作
    • 如果没有对应的记录是否插入开关
    • 是否匹配所有符合条件的记录

    相关文章

      网友评论

          本文标题:第八章 使用MongoDB shell将文档保存到集合中

          本文链接:https://www.haomeiwen.com/subject/dwziyxtx.html