insert (ドキュメントの挿入)
最終更新:2026-10-09
insert (ドキュメントの挿入)
insert は低レベルの挿入コマンドで、通常 mongosh の db.collection.insertOne() / insertMany() にラップされています。生の形式は db.runCommand({ insert: 'orders', documents: [...] }) です。複数のドキュメントを一度に挿入し、_id が無い場合は ObjectId を自動生成します。insertMany の ordered モードとは異なり、insert コマンドでは 1 件でも失敗すると何も挿入されません。
| カテゴリ | 管理コマンド |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
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 を使う
- 1 件でも失敗すると、コマンド全体が何も挿入しない
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Qinsert と insertMany の違いは?
AinsertMany は ordered: false で部分成功を許します。insert コマンドは 1 件でも失敗すると何も挿入しません。
Q挿入した _id はどう取得しますか?
Ainsert コマンドは _id 付きのドキュメントをエコーバックします。ヘルパーは insertedIds を返します。
Q単一ドキュメントはどのくらいのサイズまで?
A16MB です。BSON ドキュメントのサイズ上限です。