- Reference >
- Database Commands >
- Administration Commands >
- collMod
collMod¶
-
collMod
¶ New in version 2.2.
collMod
makes it possible to add flags to a collection to modify the behavior of MongoDB. Flags includeusePowerOf2Sizes
andindex
. The command takes the following prototype form:In this command substitute
<collection>
with the name of a collection in the current database, and<flag>
and<value>
with the flag and value you want to set.Use the
userFlags
field in the indb.collection.stats()
output to check enabled collection flags.-
usePowerOf2Sizes
¶ The
usePowerOf2Sizes
flag changes the method that MongoDB uses to allocate space on disk for documents in this collection. By settingusePowerOf2Sizes
, you ensure that MongoDB will allocate space for documents in sizes that are powers of 2 (e.g. 4, 8, 16, 32, 64, 128, 256, 512…8388608). WithusePowerOf2Sizes
, MongoDB will be able to more effectively reuse space.Note
With
usePowerOf2Sizes
, MongoDB allocates records that have power of 2 sizes until record sizes equal 4 megabytes. For records larger than 4 megabytes withusePowerOf2Sizes
set,mongod
will allocate records in full megabytes by rounding up to the nearest megabyte.usePowerOf2Sizes
is useful for collections where you will be inserting and deleting large numbers of documents to ensure that MongoDB will effectively use space on disk.Example
To enable
usePowerOf2Sizes
on the collection namedproducts
, use the following operation:To disable
usePowerOf2Sizes
on the collectionproducts
, use the following operation:Warning
Changed in version 2.2.1:
usePowerOf2Sizes
now supports documents larger than 8 megabytes. If you enableusePowerOf2Sizes
you must use at least version 2.2.1.usePowerOf2Sizes
only affects subsequent allocations caused by document insertion or record relocation as a result of document growth, and does not affect existing allocations.
-
index
¶ The
index
flag changes the expiration time of a TTL Collection.Specify the key and new expiration time with a document of the form:
where
<index_spec>
is an existing index in the collection andseconds
is the number of seconds to subtract from the current time.Example
To update the expiration value for a collection named
sessions
indexed on alastAccess
field from 30 minutes to 60 minutes, use the following operation:Which will return the document:
On success
collMod
returns a document with fieldsexpireAfterSeconds_old
andexpireAfterSeconds_new
set to their respective values.On failure,
collMod
returns a document withno expireAfterSeconds field to update
if there is no existingexpireAfterSeconds
field orcannot find index { **key**: 1.0 } for ns **namespace**
if the specifiedkeyPattern
does not exist.
-