Mongodb更新数组$position修饰符

来源:互联网 发布:vr室内设计软件 编辑:程序博客网 时间:2024/06/05 05:06

一、$position修饰符指定使用$push操作符插入数组中的数据元素的位置,并且必须和$each一起使用;使用位置修饰符的格式如下:

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

如果num是负数或者0插入的数据就放到数组的开始位置,如果num大于或者等于数组的 长度则不对数组做任何 修改直接放入到数组的 最后位置。

二、将元素插入到数组开始的位置

以下是students集合包含下面的文档:

{ "_id" : 1, "scores" : [ 100 ] }

以下操作会将元素放到数组的开始位置:

db.students.update(   { _id: 1 },   {     $push: {        scores: {           $each: [ 50, 60, 70 ],           $position: 0        }     }   })

操作的结果是:

{ "_id" : 1, "scores" : [  50,  60,  70,  100 ] }

三、将元素插入到数组的中间位置

考虑students集合包含如下文档集合:

{ "_id" : 1, "scores" : [  50,  60,  70,  100 ] }

以下操作会更新scores字段并将20、30元素放入索引为2的位置

db.students.update(   { _id: 1 },   {     $push: {        scores: {           $each: [ 20, 30 ],           $position: 2        }     }   })

操作结果是:

{ "_id" : 1, "scores" : [  50,  60,  20,  30,  70,  100 ] }


原创粉丝点击