插入文档
约 339 字大约 1 分钟
布欧-Lewyon
2026-05-15
首页 › MongoDB › CRUD 操作(在新窗口打开) › 插入文档
insertOne
// 插入单个文档
db.users.insertOne({
name: "Alice",
age: 25,
email: "alice@example.com",
tags: ["developer"]
})
// 返回
// { "acknowledged": true, "insertedId": ObjectId("...") }insertMany
// 插入多个文档
db.users.insertMany([
{ name: "Bob", age: 30, email: "bob@example.com" },
{ name: "Charlie", age: 35, email: "charlie@example.com" }
])
// 返回
// { "acknowledged": true, "insertedIds": { "0": ObjectId("..."), "1": ObjectId("...") } }ordered vs unordered
// ordered(默认):遇到错误停止,前面插入的保留
db.users.insertMany([
{ _id: 1, name: "A" },
{ _id: 1, name: "B" }, // 重复 _id,报错
{ _id: 2, name: "C" } // 不会执行
])
// unordered:继续执行,不因一个错误停止
db.users.insertMany([
{ _id: 1, name: "A" },
{ _id: 1, name: "B" },
{ _id: 2, name: "C" }
], { ordered: false })writeConcern
控制写入确认级别:
db.users.insertOne(
{ name: "Dave" },
{ writeConcern: { w: "majority", wtimeout: 5000 } }
)| w 值 | 含义 |
|---|---|
1(默认) | 主节点确认 |
0 | 不确认(快速但不安全) |
majority | 多数副本节点确认 |
"<tag>" | 自定义写关注 |
自动生成 _id
// 不指定 _id,自动生成 ObjectId
db.users.insertOne({ name: "Eve" })
// { "_id": ObjectId("..."), "name": "Eve" }
// 手动指定 _id(字符串、数字)
db.users.insertOne({ _id: "user_100", name: "Frank" })小结
insertOne单条插入,insertMany批量插入。ordered: false让批量插入在遇到错误时继续。writeConcern控制写入确认级别(w: "majority"确保副本集多数确认)。- 不指定
_id时自动生成 ObjectId。
