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

方法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:[]
$push 在数组中添加一个元素。对于简单数组,格式为array_field:new_value;对于对象数组,格式为array_field:{field:value}
$each 用于运算符$push和$addToSet 的限定符,用于在数组中添加多个元素。格式为array_field:{$each:[value1,...]},一般会与$addToSet方法配合使用
$slice 用于运算符$push的限定符,用于限制更新后的数组长度。格式为array_field:{$slice:}
$sort 用于运算符$push的限定符,用于将数组中的文档重新排序
$bit 对整数值执行按位与和或运算。 格式为format:integer_field:{and:} 和 integer_field:{or:}

说明$slice 函数说明:

{
  $push:{
      : {
         $each: [,,....],
         $slice: 
      }
  }
}

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

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

update方法, 有四个参数:

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

你可能感兴趣的:(第八章 使用MongoDB shell将文档保存到集合中)