insert(插入文档)
最后更新:2026-10-09
insert(插入文档)
insert是底层插入命令,mongosh中通常用db.collection.insertOne()/insertMany()封装。命令形式为db.runCommand({ insert: 'orders', documents: [...] })。一次可插入多条;未指定_id时自动生成ObjectId。注意:insert命令中任一文档失败则整批不插入,与insertMany的ordered行为不同。
| 分类 | 管理命令 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.orders.insertOne({ item: "apple", qty: 10 })
db.runCommand({
insert: "orders",
documents: [ { item: "apple", qty: 10 }, { item: "pear", qty: 5 } ]
})
⚙️ 参数
| documents | 要插入的文档数组 |
|---|---|
| ordered | true时遇到错误停止(默认),false跳过错误继续 |
返回值:返回n(插入条数)、ok及写入的_id列表
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// insert:命令形式批量插入
use shop
db.runCommand({
insert: 'orders',
documents: [
{ item: 'apple', qty: 10 },
{ item: 'pear', qty: 5 }
]
})
运行结果:
{ n: 2, ok: 1 }
📌 注意事项
- 未指定_id时自动生成ObjectId并回写
- 单文档上限16MB,大文件用GridFS
- 任一文档失败则整条命令不插入任何文档
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Qinsert和insertMany有区别吗?
AinsertMany支持ordered: false部分成功;insert命令任一条失败则整批不插入。
Q怎么拿到插入后的_id?
Ainsert命令结果中的documents字段返回带_id的文档;辅助方法返回insertedIds。
Q单文档能多大?
A16MB(BSON文档大小上限)。