$position (挿入位置の指定)
最終更新:2026-10-09
$position (挿入位置の指定)
$position は、$push が要素を挿入する位置を指定します。`{ $push: { items: { $each: ['x'], $position: 0 } } }` で先頭に挿入します。位置は 0 から始まり、負の値は末尾から数えます(-1 は末尾の要素の前に挿入)。$push 内で $each と一緒に使い、$slice と組み合わせて配列の長さも制限できます。
| カテゴリ | 更新修飾子 |
|---|---|
| MongoDB バージョン | 2.6+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $push: { <array field>: { $each: [ <value> ], $position: <position> } } }
⚙️ パラメータ
| 配列フィールド | 挿入先の配列フィールド。 |
|---|---|
| 位置 | 挿入インデックス(0 始まり)。負の値は末尾から数えます。 |
戻り値:更新結果
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $position: 配列の先頭に挿入
// 位置は 0 から始まる
db.tasks.updateOne(
{ _id: 1 },
{ $push: { queue: { $each: ['urgent'], $position: 0 } } }
)
// 負の値: 末尾の要素の前に挿入
db.tasks.updateOne(
{ _id: 1 },
{ $push: { queue: { $each: ['normal'], $position: -1 } } }
)
出力:
// urgent は先頭に、normal は末尾の要素の前に挿入される
📌 注意事項
- $each と一緒に使う必要がある
- 位置は 0 から始まり、負の値は末尾から数える
- $slice と組み合わせて配列の長さを制限できる
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$position は $each と必ず組み合わせますか?
Aはい。$position は $push 内で $each と一緒にしか使えません。
Q$position: 0 は何を意味しますか?
A配列の先頭(インデックス 0)に挿入します。
Q$position は負の値を指定できますか?
Aはい。-1 は末尾の要素の前に挿入します。