您的位置:首页 > 数据库 > Mongodb

Mongodb更新数组$position修饰符

2017-12-03 14:52 134 查看
一、$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 ] }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: