collMod (コレクションの変更)

最終更新:2026-10-09

collMod (コレクションの変更)

collMod は既存コレクションの設定を調整します。TTL インデックスの有効期限(expireAfterSeconds)、スキーマバリデーター、インデックスオプションなどです。コマンドドキュメントの最初のフィールドがコレクション名です。collMod は既存コレクションの調整のみで、作成は create を使います。バリデーターの変更は新しい書き込みと更新ドキュメントにのみ適用されます。

カテゴリ管理コマンド
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.runCommand({ collMod: "<collection>", validator: { ... } })
db.runCommand({ collMod: "sessions", index: { keyPattern: { lastAccess: 1 }, expireAfterSeconds: 3600 } })

⚙️ パラメータ

validator新しい検証ルール($jsonSchema など)。
indexインデックスオプションの変更(例: TTL の expireAfterSeconds)。

戻り値:ok: 1 と、変更されたオプションの旧値・新値を返します

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// collMod: TTL の有効期限を調整
use shop
db.runCommand({
  collMod: 'sessions',
  index: { keyPattern: { lastAccess: 1 }, expireAfterSeconds: 3600 }
})

出力:

{ expireAfterSeconds_old: 86400, expireAfterSeconds_new: 3600, ok: 1 }

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

QTTL の有効期限はどう変更しますか?
AcollMod の index.expireAfterSeconds を使います。インデックスの再構築は不要です。
QcollMod で変更できる設定は?
Aバリデーター、TTL 有効期限、インデックスオプション、シャーディングコレクションの拡張などです。
Qバリデーターの変更は既存ドキュメントに影響しますか?
Aいいえ。新しい書き込みと更新ドキュメントのみ検証されます。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%