collMod (Modify Collection)
Last updated: 2026-10-09
collMod (Modify Collection)
collMod adjusts settings of an existing collection: TTL index expiry (expireAfterSeconds), the schema validator, index options, and more. The command document's first field is the collection name. collMod only tweaks existing collections — creating one uses create. Validator changes apply only to new writes and updated documents.
| Category | Admin Commands |
|---|---|
| MongoDB Version | 1.0+ |
| Example Language | mongosh (Shell) |
📝 Syntax
db.runCommand({ collMod: "<collection>", validator: { ... } })
db.runCommand({ collMod: "sessions", index: { keyPattern: { lastAccess: 1 }, expireAfterSeconds: 3600 } })
⚙️ Parameters
| validator | New validation rules ($jsonSchema and friends) |
|---|---|
| index | Index option changes, e.g. TTL expireAfterSeconds |
Returns:Returns ok: 1 plus old/new values for modified options
▶ Example
Run the commands below in your local mongosh (requires a running mongod):
// collMod: adjust TTL expiry
use shop
db.runCommand({
collMod: 'sessions',
index: { keyPattern: { lastAccess: 1 }, expireAfterSeconds: 3600 }
})
Output:
{ expireAfterSeconds_old: 86400, expireAfterSeconds_new: 3600, ok: 1 }
📌 Notes
- TTL expiry is changed only via collMod after index creation
- Validator changes affect only new writes and updated documents
- The command's first field is the collection name
🏷️ Related Tags
💡 Related Cases
📚 Related Tutorials
❓ FAQ
QHow do I change a TTL expiry time?
AUse collMod with index.expireAfterSeconds — no index rebuild needed.
QWhich settings can collMod change?
AValidators, TTL expiry, index options, and sharded-collection expansion, among others.
QDoes changing the validator affect existing documents?
ANo — it validates only new writes and updated documents.