$pop(移除首尾元素)
最后更新:2026-10-09
$pop(移除首尾元素)
$pop 移除数组的第一个(-1)或最后一个(1)元素。`{ $pop: { queue: -1 } }` 移除队首;`{ $pop: { queue: 1 } }` 移除队尾。数组为空时无操作。它只能按位置移除,按值移除用 $pull。适合实现队列、栈、最近消息等结构。
| 分类 | 更新数组 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $pop: { <数组字段>: <-1 或 1> } }
⚙️ 参数
| 数组字段 | 要移除元素的数组字段名。 |
|---|---|
| 方向 | -1 移除第一个元素,1 移除最后一个。 |
返回值:更新结果文档
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $pop:移除队列队首元素
// -1 队首,1 队尾
db.tasks.updateOne(
{ _id: 1 },
{ $pop: { queue: -1 } }
)
// 移除队尾(栈式弹出)
db.tasks.updateOne(
{ _id: 1 },
{ $pop: { queue: 1 } }
)
运行结果:
// queue 数组长度减一,队首或队尾元素被移除
📌 注意事项
- 只接受 -1 或 1 两个方向值
- 按值移除用 $pull,不是 $pop
- 数组为空时无操作
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Q$pop 能移除指定值吗?
A不能,只按位置移除首/尾;按值移除用 $pull。
Q$pop 的参数只能写 -1 或 1 吗?
A是,其他值无效。
Q$pop 空数组会报错吗?
A不会,空数组时无操作。