Interface CreateCollectionOptions

interface CreateCollectionOptions {
    authdb?: string;
    autoIndexId?: boolean;
    bsonRegExp?: boolean;
    capped?: boolean;
    changeStreamPreAndPostImages?: {
        enabled: boolean;
    };
    checkKeys?: boolean;
    clusteredIndex?: ClusteredCollectionOptions;
    collation?: CollationOptions;
    comment?: unknown;
    dbName?: string;
    enableUtf8Validation?: boolean;
    encryptedFields?: Document;
    expireAfterSeconds?: number;
    explain?: ExplainVerbosityLike | ExplainCommandOptions;
    fieldsAsRaw?: Document;
    flags?: number;
    ignoreUndefined?: boolean;
    indexOptionDefaults?: Document;
    max?: number;
    maxTimeMS?: number;
    noResponse?: boolean;
    omitReadPreference?: boolean;
    pipeline?: Document[];
    pkFactory?: PkFactory;
    promoteBuffers?: boolean;
    promoteLongs?: boolean;
    promoteValues?: boolean;
    raw?: boolean;
    readConcern?: ReadConcernLike;
    readPreference?: ReadPreferenceLike;
    retryWrites?: boolean;
    serializeFunctions?: boolean;
    session?: ClientSession;
    size?: number;
    storageEngine?: Document;
    timeseries?: TimeSeriesCollectionOptions;
    useBigInt64?: boolean;
    validationAction?: string;
    validationLevel?: string;
    validator?: Document;
    viewOn?: string;
    willRetryWrite?: boolean;
    writeConcern?: WriteConcern | WriteConcernSettings;
}

Hierarchy (view full)

Properties

authdb?: string
autoIndexId?: boolean

Create an index on the _id field of the document. This option is deprecated in MongoDB 3.2+ and will be removed once no longer supported by the server.

bsonRegExp?: boolean

return BSON regular expressions as BSONRegExp instances.

false

capped?: boolean

Create a capped collection

changeStreamPreAndPostImages?: {
    enabled: boolean;
}

If set, enables pre-update and post-update document events to be included for any change streams that listen on this collection.

checkKeys?: boolean

the serializer will check if keys are valid.

false

A document specifying configuration options for clustered collections. For MongoDB 5.3 and above.

collation?: CollationOptions

Collation

comment?: unknown

Comment to apply to the operation.

In server versions pre-4.4, 'comment' must be string. A server error will be thrown if any other type is provided.

In server versions 4.4 and above, 'comment' can be any valid BSON type.

dbName?: string
enableUtf8Validation?: boolean

Enable utf8 validation when deserializing BSON documents. Defaults to true.

encryptedFields?: Document
expireAfterSeconds?: number

The number of seconds after which a document in a timeseries or clustered collection expires.

Specifies the verbosity mode for the explain output.

fieldsAsRaw?: Document

allow to specify if there what fields we wish to return as unserialized raw buffer.

null

flags?: number

Available for the MMAPv1 storage engine only to set the usePowerOf2Sizes and the noPadding flag

ignoreUndefined?: boolean

serialize will not emit undefined fields note that the driver sets this to false

true

indexOptionDefaults?: Document

Allows users to specify a default configuration for indexes when creating a collection

max?: number

The maximum number of documents in the capped collection

maxTimeMS?: number
noResponse?: boolean
omitReadPreference?: boolean
pipeline?: Document[]

An array that consists of the aggregation pipeline stage. Creates the view by applying the specified pipeline to the viewOn collection or view

pkFactory?: PkFactory

A primary key factory function for generation of custom _id keys.

promoteBuffers?: boolean

when deserializing a Binary will return it as a node.js Buffer instance.

false

promoteLongs?: boolean

when deserializing a Long will fit it into a Number if it's smaller than 53 bits.

true

promoteValues?: boolean

when deserializing will promote BSON values to their Node.js closest equivalent types.

true

raw?: boolean

Enabling the raw option will return a Node.js Buffer which is allocated using allocUnsafe API. See this section from the Node.js Docs here for more detail about what "unsafe" refers to in this context. If you need to maintain your own editable clone of the bytes returned for an extended life time of the process, it is recommended you allocate your own buffer and clone the contents:

const raw = await collection.findOne({}, { raw: true });
const myBuffer = Buffer.alloc(raw.byteLength);
myBuffer.set(raw, 0);
// Only save and use `myBuffer` beyond this point

Please note there is a known limitation where this option cannot be used at the MongoClient level (see NODE-3946). It does correctly work at Db, Collection, and per operation the same as other BSON options work.

readConcern?: ReadConcernLike

Specify a read concern and level for the collection. (only MongoDB 3.2 or higher supported)

readPreference?: ReadPreferenceLike

The preferred read preference (ReadPreference.primary, ReadPreference.primary_preferred, ReadPreference.secondary, ReadPreference.secondary_preferred, ReadPreference.nearest).

retryWrites?: boolean

Should retry failed writes

serializeFunctions?: boolean

serialize the javascript functions

false

session?: ClientSession

Specify ClientSession for this command

size?: number

The size of the capped collection in bytes

storageEngine?: Document

Allows users to specify configuration to the storage engine on a per-collection basis when creating a collection

A document specifying configuration options for timeseries collections.

useBigInt64?: boolean

when deserializing a Long return as a BigInt.

false

validationAction?: string

Determines whether to error on invalid documents or just warn about the violations but allow invalid documents to be inserted

validationLevel?: string

Determines how strictly MongoDB applies the validation rules to existing documents during an update

validator?: Document

Allows users to specify validation rules or expressions for the collection. For more information, see Document Validation

viewOn?: string

The name of the source collection or view from which to create the view. The name is not the full namespace of the collection or view (i.e., does not include the database name and implies the same database as the view to create)

willRetryWrite?: boolean

Write Concern as an object