Mongodb更新陣列$position修飾符
阿新 • • 發佈:2018-12-24
一、$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 ] }