$pop (先頭・末尾の削除)
最終更新:2026-10-09
$pop (先頭・末尾の削除)
$pop は、配列の先頭(-1)または末尾(1)の要素を削除します。`{ $pop: { queue: -1 } }` で先頭から、`{ $pop: { queue: 1 } }` で末尾から削除します。空の配列には影響しません。位置でしか削除できません — 値で削除するには $pull を使います。キュー、スタック、最近のメッセージ一覧などに便利です。
| カテゴリ | 配列更新 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $pop: { <array field>: <-1 or 1> } }
⚙️ パラメータ
| 配列フィールド | 取り出す配列フィールド。 |
|---|---|
| 方向 | -1 は最初の要素を、1 は最後の要素を削除します。 |
戻り値:更新結果
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $pop: キューの先頭を削除
// -1 は先頭、1 は末尾
db.tasks.updateOne(
{ _id: 1 },
{ $pop: { queue: -1 } }
)
// 末尾を削除(スタックの pop)
db.tasks.updateOne(
{ _id: 1 },
{ $pop: { queue: 1 } }
)
出力:
// queue は先頭または末尾から 1 要素失われる
📌 注意事項
- 方向には -1 か 1 しか指定できない
- 値で削除するには $pull を使う
- 空の配列では何も起きない(no-op)
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$pop で特定の値を削除できますか?
Aいいえ。位置でしか削除できません。値で削除するには $pull を使います。
Q$pop には -1 か 1 しか指定できませんか?
Aはい。他の値は不正です。
Q空の配列で $pop を使うとエラーになりますか?
Aいいえ。空の配列では何も起きません。