Class: Collection

Collection

new Collection(){Collection}

Create a new Collection instance (INTERNAL TYPE, do not instantiate directly)

Properties:
Name Type Description
collectionName string

Get the collection name.

namespace string

Get the full collection namespace.

writeConcern object

The current write concern values.

readConcern object

The current read concern values.

hint object

Get current index hint for collection.

Returns:
Collection instance.

Methods

aggregate(pipeline, options, callback){null|AggregationCursor}

Execute an aggregation framework pipeline against the collection, needs MongoDB >= 2.2

Name Type Default Description
pipeline object

Array containing all the aggregation framework commands for the execution.

options object null optional

Optional settings.

Name Type Default Description
readPreference ReadPreference | string null optional

The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

cursor object null optional

Return the query as cursor, on 2.6 > it returns as a real cursor on pre 2.6 it returns as an emulated cursor.

Name Type Default Description
batchSize number null optional

The batchSize for the cursor

explain boolean false optional

Explain returns the aggregation execution plan (requires mongodb 2.6 >).

allowDiskUse boolean false optional

allowDiskUse lets the server know if it can use disk to store temporary results for the aggregation (requires mongodb 2.6 >).

maxTimeMS number null optional

maxTimeMS specifies a cumulative time limit in milliseconds for processing operations on the cursor. MongoDB interrupts the operation at the earliest following interrupt point.

bypassDocumentValidation boolean false optional

Allow driver to bypass schema validation in MongoDB 3.2 or higher.

raw boolean false optional

Return document results as raw BSON buffers.

promoteLongs boolean true optional

Promotes Long values to number if they fit inside the 53 bits resolution.

promoteValues boolean true optional

Promotes BSON values to native types where possible, set to false to only receive wrapper types.

promoteBuffers boolean false optional

Promotes Binary BSON values to native Node Buffers.

collation object null optional

Specify collation (MongoDB 3.4 or higher) settings for update operation (see 3.4 documentation for available fields).

comment string optional

Add a comment to an aggregation command

session ClientSession optional

optional session to use for this operation

callback Collection~aggregationCallback

The command result callback

bulkWrite(operations, options, callback){Promise}

Perform a bulkWrite operation without a fluent API

Legal operation types are

{ insertOne: { document: { a: 1 } } }

{ updateOne: { filter: {a:2}, update: {$set: {a:2}}, upsert:true } }

{ updateMany: { filter: {a:2}, update: {$set: {a:2}}, upsert:true } }

{ deleteOne: { filter: {c:1} } }

{ deleteMany: { filter: {c:1} } }

{ replaceOne: { filter: {c:3}, replacement: {c:4}, upsert:true}}

If documents passed in do not contain the _id field,
one will be added to each of the documents missing it by the driver, mutating the document. This behavior
can be overridden by setting the forceServerObjectId flag.

Name Type Default Description
operations Array.<object>

Bulk operations to perform.

options object null optional

Optional settings.

Name Type Default Description
w number | string null optional

The write concern.

wtimeout number null optional

The write concern timeout.

j boolean false optional

Specify a journal write concern.

serializeFunctions boolean false optional

Serialize functions on any object.

ordered boolean true optional

Execute write operation in ordered or unordered fashion.

bypassDocumentValidation boolean false optional

Allow driver to bypass schema validation in MongoDB 3.2 or higher.

session ClientSession optional

optional session to use for this operation

callback Collection~bulkWriteOpCallback optional

The command result callback

Returns:
Promise if no callback passed

count(query, options, callback){Promise}

Count number of matching documents in the db to a query.

Name Type Default Description
query object

The query for the count.

options object null optional

Optional settings.

Name Type Default Description
limit boolean null optional

The limit of documents to count.

skip boolean null optional

The number of documents to skip for the count.

hint string null optional

An index name hint for the query.

readPreference ReadPreference | string null optional

The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

maxTimeMS number null optional

Number of miliseconds to wait before aborting the query.

session ClientSession optional

optional session to use for this operation

callback Collection~countCallback optional

The command result callback

Returns:
Promise if no callback passed

createIndex(fieldOrSpec, options, callback){Promise}

Creates an index on the db and collection collection.

Name Type Default Description
fieldOrSpec string | object

Defines the index.

options object null optional

Optional settings.

Name Type Default Description
w number | string null optional

The write concern.

wtimeout number null optional

The write concern timeout.

j boolean false optional

Specify a journal write concern.

unique boolean false optional

Creates an unique index.

sparse boolean false optional

Creates a sparse index.

background boolean false optional

Creates the index in the background, yielding whenever possible.

dropDups boolean false optional

A unique index cannot be created on a key that has pre-existing duplicate values. If you would like to create the index anyway, keeping the first document the database indexes and deleting all subsequent documents that have duplicate value

min number null optional

For geospatial indexes set the lower bound for the co-ordinates.

max number null optional

For geospatial indexes set the high bound for the co-ordinates.

v number null optional

Specify the format version of the indexes.

expireAfterSeconds number null optional

Allows you to expire data on indexes applied to a data (MongoDB 2.2 or higher)

name string null optional

Override the autogenerated index name (useful if the resulting name is larger than 128 bytes)

partialFilterExpression object null optional

Creates a partial index based on the given filter object (MongoDB 3.2 or higher)

collation object null optional

Specify collation (MongoDB 3.4 or higher) settings for update operation (see 3.4 documentation for available fields).

session ClientSession optional

optional session to use for this operation

callback Collection~resultCallback optional

The command result callback

Returns:
Promise if no callback passed

createIndexes(indexSpecs, options, callback){Promise}

Creates multiple indexes in the collection, this method is only supported for
MongoDB 2.6 or higher. Earlier version of MongoDB will throw a command not supported
error. Index specifications are defined at https://www.mongodb.com/docs/manual/reference/command/createIndexes/.

Name Type Description
indexSpecs array

An array of index specifications to be created

options Object optional

Optional settings

Name Type Description
session ClientSession optional

optional session to use for this operation

callback Collection~resultCallback optional

The command result callback

Returns:
Promise if no callback passed

deleteMany(filter, options, callback){Promise}

Delete multiple documents on MongoDB

Name Type Default Description
filter object

The Filter used to select the documents to remove

options object null optional

Optional settings.

Name Type Default Description
w number | string null optional

The write concern.

wtimeout number null optional

The write concern timeout.

j boolean false optional

Specify a journal write concern.

session ClientSession optional

optional session to use for this operation

callback Collection~deleteWriteOpCallback optional

The command result callback

Returns:
Promise if no callback passed

deleteOne(filter, options, callback){Promise}

Delete a document on MongoDB

Name Type Default Description
filter object

The Filter used to select the document to remove

options object null optional

Optional settings.

Name Type Default Description
w number | string null optional

The write concern.

wtimeout number null optional

The write concern timeout.

j boolean false optional

Specify a journal write concern.

session ClientSession optional

optional session to use for this operation

callback Collection~deleteWriteOpCallback optional

The command result callback

Returns:
Promise if no callback passed

distinct(key, query, options, callback){Promise}

The distinct command returns returns a list of distinct values for the given key across a collection.

Name Type Default Description
key string

Field of the document to find distinct values for.

query object

The query for filtering the set of documents to which we apply the distinct filter.

options object null optional

Optional settings.

Name Type Default Description
readPreference ReadPreference | string null optional

The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

maxTimeMS number null optional

Number of miliseconds to wait before aborting the query.

session ClientSession optional

optional session to use for this operation

callback Collection~resultCallback optional

The command result callback

Returns:
Promise if no callback passed

drop(options, callback){Promise}

Drop the collection from the database, removing it permanently. New accesses will create a new collection.

Name Type Default Description
options object null optional

Optional settings.

Name Type Description
session ClientSession optional

optional session to use for this operation

callback Collection~resultCallback optional

The results callback

Returns:
Promise if no callback passed

dropAllIndexes(callback){Promise}

Drops all indexes from this collection.

Name Type Description
callback Collection~resultCallback

The command result callback

Deprecated
  • use dropIndexes
    Returns:
    Promise if no [callback] passed

    dropIndex(indexName, options, callback){Promise}

    Drops an index from this collection.

    Name Type Default Description
    indexName string

    Name of the index to drop.

    options object null optional

    Optional settings.

    Name Type Default Description
    w number | string null optional

    The write concern.

    wtimeout number null optional

    The write concern timeout.

    j boolean false optional

    Specify a journal write concern.

    session ClientSession optional

    optional session to use for this operation

    maxTimeMS number optional

    Number of miliseconds to wait before aborting the query.

    callback Collection~resultCallback optional

    The command result callback

    Returns:
    Promise if no callback passed

    dropIndexes(options, callback){Promise}

    Drops all indexes from this collection.

    Name Type Description
    options Object optional

    Optional settings

    Name Type Description
    session ClientSession optional

    optional session to use for this operation

    maxTimeMS number optional

    Number of miliseconds to wait before aborting the query.

    callback Collection~resultCallback optional

    The command result callback

    Returns:
    Promise if no callback passed

    ensureIndex(fieldOrSpec, options, callback){Promise}

    Ensures that an index exists, if it does not it creates it

    Name Type Default Description
    fieldOrSpec string | object

    Defines the index.

    options object null optional

    Optional settings.

    Name Type Default Description
    w number | string null optional

    The write concern.

    wtimeout number null optional

    The write concern timeout.

    j boolean false optional

    Specify a journal write concern.

    unique boolean false optional

    Creates an unique index.

    sparse boolean false optional

    Creates a sparse index.

    background boolean false optional

    Creates the index in the background, yielding whenever possible.

    dropDups boolean false optional

    A unique index cannot be created on a key that has pre-existing duplicate values. If you would like to create the index anyway, keeping the first document the database indexes and deleting all subsequent documents that have duplicate value

    min number null optional

    For geospatial indexes set the lower bound for the co-ordinates.

    max number null optional

    For geospatial indexes set the high bound for the co-ordinates.

    v number null optional

    Specify the format version of the indexes.

    expireAfterSeconds number null optional

    Allows you to expire data on indexes applied to a data (MongoDB 2.2 or higher)

    name number null optional

    Override the autogenerated index name (useful if the resulting name is larger than 128 bytes)

    collation object null optional

    Specify collation (MongoDB 3.4 or higher) settings for update operation (see 3.4 documentation for available fields).

    session ClientSession optional

    optional session to use for this operation

    callback Collection~resultCallback optional

    The command result callback

    Deprecated
    • use createIndexes instead
      Returns:
      Promise if no callback passed

      find(query, options){Cursor}

      Creates a cursor for a query that can be used to iterate over results from MongoDB

      Name Type Default Description
      query object {} optional

      The cursor query object.

      options object null optional

      Optional settings.

      Name Type Default Description
      limit number 0 optional

      Sets the limit of documents returned in the query.

      sort array | object null optional

      Set to sort the documents coming back from the query. Array of indexes, [['a', 1]] etc.

      projection object null optional

      The fields to return in the query. Object of fields to include or exclude (not both), {'a':1}

      fields object null optional

      Deprecated Use options.projection instead

      skip number 0 optional

      Set to skip N documents ahead in your query (useful for pagination).

      hint Object null optional

      Tell the query to use specific indexes in the query. Object of indexes to use, {'_id':1}

      explain boolean false optional

      Explain the query instead of returning the data.

      snapshot boolean false optional

      Snapshot query.

      timeout boolean false optional

      Specify if the cursor can timeout.

      tailable boolean false optional

      Specify if the cursor is tailable.

      batchSize number 0 optional

      Set the batchSize for the getMoreCommand when iterating over the query results.

      returnKey boolean false optional

      Only return the index key.

      maxScan number null optional

      Limit the number of items to scan.

      min number null optional

      Set index bounds.

      max number null optional

      Set index bounds.

      showDiskLoc boolean false optional

      Show disk location of results.

      comment string null optional

      You can put a $comment field on a query to make looking in the profiler logs simpler.

      raw boolean false optional

      Return document results as raw BSON buffers.

      promoteLongs boolean true optional

      Promotes Long values to number if they fit inside the 53 bits resolution.

      promoteValues boolean true optional

      Promotes BSON values to native types where possible, set to false to only receive wrapper types.

      promoteBuffers boolean false optional

      Promotes Binary BSON values to native Node Buffers.

      readPreference ReadPreference | string null optional

      The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

      partial boolean false optional

      Specify if the cursor should return partial results when querying against a sharded system

      maxTimeMS number null optional

      Number of miliseconds to wait before aborting the query.

      collation object null optional

      Specify collation (MongoDB 3.4 or higher) settings for update operation (see 3.4 documentation for available fields).

      session ClientSession optional

      optional session to use for this operation

      Throws:

      findAndModify(query, sort, doc, options, callback){Promise}

      Find and update a document.

      Name Type Default Description
      query object

      Query object to locate the object to modify.

      sort array

      If multiple docs match, choose the first one in the specified sort order as the object to manipulate.

      doc object

      The fields/vals to be updated.

      options object null optional

      Optional settings.

      Name Type Default Description
      w number | string null optional

      The write concern.

      wtimeout number null optional

      The write concern timeout.

      j boolean false optional

      Specify a journal write concern.

      remove boolean false optional

      Set to true to remove the object before returning.

      upsert boolean false optional

      Perform an upsert operation.

      new boolean false optional

      Set to true if you want to return the modified object rather than the original. Ignored for remove.

      projection object null optional

      Object containing the field projection for the result returned from the operation.

      fields object null optional

      Deprecated Use options.projection instead

      session ClientSession optional

      optional session to use for this operation

      callback Collection~findAndModifyCallback optional

      The command result callback

      Deprecated
      • use findOneAndUpdate, findOneAndReplace or findOneAndDelete instead
        Returns:
        Promise if no callback passed

        findAndRemove(query, sort, options, callback){Promise}

        Find and remove a document.

        Name Type Default Description
        query object

        Query object to locate the object to modify.

        sort array

        If multiple docs match, choose the first one in the specified sort order as the object to manipulate.

        options object null optional

        Optional settings.

        Name Type Default Description
        w number | string null optional

        The write concern.

        wtimeout number null optional

        The write concern timeout.

        j boolean false optional

        Specify a journal write concern.

        session ClientSession optional

        optional session to use for this operation

        callback Collection~resultCallback optional

        The command result callback

        Deprecated
        • use findOneAndDelete instead
          Returns:
          Promise if no callback passed

          findOne(query, options, callback){Promise}

          Fetches the first document that matches the query

          Name Type Default Description
          query object

          Query for find Operation

          options object null optional

          Optional settings.

          Name Type Default Description
          limit number 0 optional

          Sets the limit of documents returned in the query.

          sort array | object null optional

          Set to sort the documents coming back from the query. Array of indexes, [['a', 1]] etc.

          projection object null optional

          The fields to return in the query. Object of fields to include or exclude (not both), {'a':1}

          fields object null optional

          Deprecated Use options.projection instead

          skip number 0 optional

          Set to skip N documents ahead in your query (useful for pagination).

          hint Object null optional

          Tell the query to use specific indexes in the query. Object of indexes to use, {'_id':1}

          explain boolean false optional

          Explain the query instead of returning the data.

          snapshot boolean false optional

          Snapshot query.

          timeout boolean false optional

          Specify if the cursor can timeout.

          tailable boolean false optional

          Specify if the cursor is tailable.

          batchSize number 0 optional

          Set the batchSize for the getMoreCommand when iterating over the query results.

          returnKey boolean false optional

          Only return the index key.

          maxScan number null optional

          Limit the number of items to scan.

          min number null optional

          Set index bounds.

          max number null optional

          Set index bounds.

          showDiskLoc boolean false optional

          Show disk location of results.

          comment string null optional

          You can put a $comment field on a query to make looking in the profiler logs simpler.

          raw boolean false optional

          Return document results as raw BSON buffers.

          promoteLongs boolean true optional

          Promotes Long values to number if they fit inside the 53 bits resolution.

          promoteValues boolean true optional

          Promotes BSON values to native types where possible, set to false to only receive wrapper types.

          promoteBuffers boolean false optional

          Promotes Binary BSON values to native Node Buffers.

          readPreference ReadPreference | string null optional

          The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

          partial boolean false optional

          Specify if the cursor should return partial results when querying against a sharded system

          maxTimeMS number null optional

          Number of miliseconds to wait before aborting the query.

          collation object null optional

          Specify collation (MongoDB 3.4 or higher) settings for update operation (see 3.4 documentation for available fields).

          session ClientSession optional

          optional session to use for this operation

          callback Collection~resultCallback optional

          The command result callback

          Returns:
          Promise if no callback passed

          findOneAndDelete(filter, options, callback){Promise}

          Find a document and delete it in one atomic operation, requires a write lock for the duration of the operation.

          Name Type Default Description
          filter object

          Document selection filter.

          options object null optional

          Optional settings.

          Name Type Default Description
          projection object null optional

          Limits the fields to return for all matching documents.

          sort object null optional

          Determines which document the operation modifies if the query selects multiple documents.

          maxTimeMS number null optional

          The maximum amount of time to allow the query to run.

          session ClientSession optional

          optional session to use for this operation

          callback Collection~findAndModifyCallback optional

          The collection result callback

          Returns:
          Promise if no callback passed

          findOneAndReplace(filter, replacement, options, callback){Promise}

          Find a document and replace it in one atomic operation, requires a write lock for the duration of the operation.

          Name Type Default Description
          filter object

          Document selection filter.

          replacement object

          Document replacing the matching document.

          options object null optional

          Optional settings.

          Name Type Default Description
          projection object null optional

          Limits the fields to return for all matching documents.

          sort object null optional

          Determines which document the operation modifies if the query selects multiple documents.

          maxTimeMS number null optional

          The maximum amount of time to allow the query to run.

          upsert boolean false optional

          Upsert the document if it does not exist.

          returnOriginal boolean true optional

          When false, returns the updated document rather than the original. The default is true.

          session ClientSession optional

          optional session to use for this operation

          callback Collection~findAndModifyCallback optional

          The collection result callback

          Returns:
          Promise if no callback passed

          findOneAndUpdate(filter, update, options, callback){Promise}

          Find a document and update it in one atomic operation, requires a write lock for the duration of the operation.

          Name Type Default Description
          filter object

          Document selection filter.

          update object

          Update operations to be performed on the document

          options object null optional

          Optional settings.

          Name Type Default Description
          projection object null optional

          Limits the fields to return for all matching documents.

          sort object null optional

          Determines which document the operation modifies if the query selects multiple documents.

          maxTimeMS number null optional

          The maximum amount of time to allow the query to run.

          upsert boolean false optional

          Upsert the document if it does not exist.

          returnOriginal boolean true optional

          When false, returns the updated document rather than the original. The default is true.

          session ClientSession optional

          optional session to use for this operation

          callback Collection~findAndModifyCallback optional

          The collection result callback

          Returns:
          Promise if no callback passed

          geoHaystackSearch(x, y, options, callback){Promise}

          Execute a geo search using a geo haystack index on a collection.

          Name Type Default Description
          x number

          Point to search on the x axis, ensure the indexes are ordered in the same order.

          y number

          Point to search on the y axis, ensure the indexes are ordered in the same order.

          options object null optional

          Optional settings.

          Name Type Default Description
          readPreference ReadPreference | string null optional

          The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

          maxDistance number null optional

          Include results up to maxDistance from the point.

          search object null optional

          Filter the results by a query.

          limit number false optional

          Max number of results to return.

          session ClientSession optional

          optional session to use for this operation

          callback Collection~resultCallback optional

          The command result callback

          Returns:
          Promise if no callback passed

          group(keys, condition, initial, reduce, finalize, command, options, callback){Promise}

          Run a group command across a collection

          Name Type Default Description
          keys object | array | function | code

          An object, array or function expressing the keys to group by.

          condition object

          An optional condition that must be true for a row to be considered.

          initial object

          Initial value of the aggregation counter object.

          reduce function | Code

          The reduce function aggregates (reduces) the objects iterated

          finalize function | Code

          An optional function to be run on each item in the result set just before the item is returned.

          command boolean

          Specify if you wish to run using the internal group command or using eval, default is true.

          options object null optional

          Optional settings.

          Name Type Default Description
          readPreference ReadPreference | string null optional

          The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

          session ClientSession optional

          optional session to use for this operation

          callback Collection~resultCallback optional

          The command result callback

          Deprecated
          • MongoDB 3.6 or higher will no longer support the group command. We recommend rewriting using the aggregation framework.
            Returns:
            Promise if no callback passed

            indexes(options, callback){Promise}

            Retrieve all the indexes on the collection.

            Name Type Description
            options Object optional

            Optional settings

            Name Type Description
            session ClientSession optional

            optional session to use for this operation

            callback Collection~resultCallback optional

            The command result callback

            Returns:
            Promise if no callback passed

            indexExists(indexes, options, callback){Promise}

            Checks if one or more indexes exist on the collection, fails on first non-existing index

            Name Type Description
            indexes string | array

            One or more index names to check.

            options Object optional

            Optional settings

            Name Type Description
            session ClientSession optional

            optional session to use for this operation

            callback Collection~resultCallback optional

            The command result callback

            Returns:
            Promise if no callback passed

            indexInformation(options, callback){Promise}

            Retrieves this collections index info.

            Name Type Default Description
            options object null optional

            Optional settings.

            Name Type Default Description
            full boolean false optional

            Returns the full raw index information.

            session ClientSession optional

            optional session to use for this operation

            callback Collection~resultCallback optional

            The command result callback

            Returns:
            Promise if no callback passed

            initializeOrderedBulkOp(options, callback){null}

            Initiate an In order bulk write operation, operations will be serially executed in the order they are added, creating a new operation for each switch in types.

            Name Type Default Description
            options object null optional

            Optional settings.

            Name Type Default Description
            w number | string null optional

            The write concern.

            wtimeout number null optional

            The write concern timeout.

            j boolean false optional

            Specify a journal write concern.

            session ClientSession optional

            optional session to use for this operation

            callback OrderedBulkOperation

            The command result callback

            initializeUnorderedBulkOp(options){UnorderedBulkOperation}

            Initiate a Out of order batch write operation. All operations will be buffered into insert/update/remove commands executed out of order.

            Name Type Default Description
            options object null optional

            Optional settings.

            Name Type Default Description
            w number | string null optional

            The write concern.

            wtimeout number null optional

            The write concern timeout.

            j boolean false optional

            Specify a journal write concern.

            session ClientSession optional

            optional session to use for this operation

            insert(docs, options, callback){Promise}

            Inserts a single document or a an array of documents into MongoDB. If documents passed in do not contain the _id field,
            one will be added to each of the documents missing it by the driver, mutating the document. This behavior
            can be overridden by setting the forceServerObjectId flag.

            Name Type Default Description
            docs object | Array.<object>

            Documents to insert.

            options object null optional

            Optional settings.

            Name Type Default Description
            w number | string null optional

            The write concern.

            wtimeout number null optional

            The write concern timeout.

            j boolean false optional

            Specify a journal write concern.

            serializeFunctions boolean false optional

            Serialize functions on any object.

            forceServerObjectId boolean false optional

            Force server to assign _id values instead of driver.

            bypassDocumentValidation boolean false optional

            Allow driver to bypass schema validation in MongoDB 3.2 or higher.

            session ClientSession optional

            optional session to use for this operation

            callback Collection~insertWriteOpCallback optional

            The command result callback

            Deprecated
            • Use insertOne, insertMany or bulkWrite
              Returns:
              Promise if no callback passed

              insertMany(docs, options, callback){Promise}

              Inserts an array of documents into MongoDB. If documents passed in do not contain the _id field,
              one will be added to each of the documents missing it by the driver, mutating the document. This behavior
              can be overridden by setting the forceServerObjectId flag.

              Name Type Default Description
              docs Array.<object>

              Documents to insert.

              options object null optional

              Optional settings.

              Name Type Default Description
              w number | string null optional

              The write concern.

              wtimeout number null optional

              The write concern timeout.

              j boolean false optional

              Specify a journal write concern.

              serializeFunctions boolean false optional

              Serialize functions on any object.

              forceServerObjectId boolean false optional

              Force server to assign _id values instead of driver.

              bypassDocumentValidation boolean false optional

              Allow driver to bypass schema validation in MongoDB 3.2 or higher.

              ordered boolean true optional

              If true, when an insert fails, don't execute the remaining writes. If false, continue with remaining inserts when one fails.

              session ClientSession optional

              optional session to use for this operation

              callback Collection~insertWriteOpCallback optional

              The command result callback

              Returns:
              Promise if no callback passed

              insertOne(doc, options, callback){Promise}

              Inserts a single document into MongoDB. If documents passed in do not contain the _id field,
              one will be added to each of the documents missing it by the driver, mutating the document. This behavior
              can be overridden by setting the forceServerObjectId flag.

              Name Type Default Description
              doc object

              Document to insert.

              options object null optional

              Optional settings.

              Name Type Default Description
              w number | string null optional

              The write concern.

              wtimeout number null optional

              The write concern timeout.

              j boolean false optional

              Specify a journal write concern.

              serializeFunctions boolean false optional

              Serialize functions on any object.

              forceServerObjectId boolean false optional

              Force server to assign _id values instead of driver.

              bypassDocumentValidation boolean false optional

              Allow driver to bypass schema validation in MongoDB 3.2 or higher.

              session ClientSession optional

              optional session to use for this operation

              callback Collection~insertOneWriteOpCallback optional

              The command result callback

              Returns:
              Promise if no callback passed

              isCapped(options, callback){Promise}

              Returns if the collection is a capped collection

              Name Type Description
              options Object optional

              Optional settings

              Name Type Description
              session ClientSession optional

              optional session to use for this operation

              callback Collection~resultCallback optional

              The results callback

              Returns:
              Promise if no callback passed

              listIndexes(options){CommandCursor}

              Get the list of all indexes information for the collection.

              Name Type Default Description
              options object null optional

              Optional settings.

              Name Type Default Description
              batchSize number null optional

              The batchSize for the returned command cursor or if pre 2.8 the systems batch collection

              readPreference ReadPreference | string null optional

              The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

              session ClientSession optional

              optional session to use for this operation

              mapReduce(map, reduce, options, callback){Promise}

              Run Map Reduce across a collection. Be aware that the inline option for out will return an array of results not a collection.

              Name Type Default Description
              map function | string

              The mapping function.

              reduce function | string

              The reduce function.

              options object null optional

              Optional settings.

              Name Type Default Description
              readPreference ReadPreference | string null optional

              The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

              out object null optional

              Sets the output target for the map reduce job. {inline:1} | {replace:'collectionName'} | {merge:'collectionName'} | {reduce:'collectionName'}

              query object null optional

              Query filter object.

              sort object null optional

              Sorts the input objects using this key. Useful for optimization, like sorting by the emit key for fewer reduces.

              limit number null optional

              Number of objects to return from collection.

              keeptemp boolean false optional

              Keep temporary data.

              finalize function | string null optional

              Finalize function.

              scope object null optional

              Can pass in variables that can be access from map/reduce/finalize.

              jsMode boolean false optional

              It is possible to make the execution stay in JS. Provided in MongoDB > 2.0.X.

              verbose boolean false optional

              Provide statistics on job execution time.

              bypassDocumentValidation boolean false optional

              Allow driver to bypass schema validation in MongoDB 3.2 or higher.

              session ClientSession optional

              optional session to use for this operation

              callback Collection~resultCallback optional

              The command result callback

              Throws:
              Returns:
              Promise if no callback passed

              options(options, callback){Promise}

              Returns the options of the collection.

              Name Type Description
              options Object optional

              Optional settings

              Name Type Description
              session ClientSession optional

              optional session to use for this operation

              callback Collection~resultCallback optional

              The results callback

              Returns:
              Promise if no callback passed

              parallelCollectionScan(options, callback){Promise}

              Return N number of parallel cursors for a collection allowing parallel reading of entire collection. There are
              no ordering guarantees for returned results.

              Name Type Default Description
              options object null optional

              Optional settings.

              Name Type Default Description
              readPreference ReadPreference | string null optional

              The preferred read preference (ReadPreference.PRIMARY, ReadPreference.PRIMARY_PREFERRED, ReadPreference.SECONDARY, ReadPreference.SECONDARY_PREFERRED, ReadPreference.NEAREST).

              batchSize number null optional

              Set the batchSize for the getMoreCommand when iterating over the query results.

              numCursors number 1 optional

              The maximum number of parallel command cursors to return (the number of returned cursors will be in the range 1:numCursors)

              raw boolean false optional

              Return all BSON documents as Raw Buffer documents.

              callback Collection~parallelCollectionScanCallback optional

              The command result callback

              Returns:
              Promise if no callback passed

              reIndex(options, callback){Promise}

              Reindex all indexes on the collection
              Warning: reIndex is a blocking operation (indexes are rebuilt in the foreground) and will be slow for large collections.

              Name Type Description
              options Object optional

              Optional settings

              Name Type Description
              session ClientSession optional

              optional session to use for this operation

              callback Collection~resultCallback optional

              The command result callback

              Returns:
              Promise if no callback passed

              remove(selector, options, callback){Promise}

              Remove documents.

              Name Type Default Description
              selector object

              The selector for the update operation.

              options object null optional

              Optional settings.

              Name Type Default Description
              w number | string null optional

              The write concern.

              wtimeout number null optional

              The write concern timeout.

              j boolean false optional

              Specify a journal write concern.

              single boolean false optional

              Removes the first document found.

              session ClientSession optional

              optional session to use for this operation

              callback Collection~writeOpCallback optional

              The command result callback

              Deprecated
              • use deleteOne, deleteMany or bulkWrite
                Returns:
                Promise if no callback passed

                rename(newName, options, callback){Promise}

                Rename the collection.

                Name Type Default Description
                newName string

                New name of of the collection.

                options object null optional

                Optional settings.

                Name Type Default Description
                dropTarget boolean false optional

                Drop the target name collection if it previously exists.

                session ClientSession optional

                optional session to use for this operation

                callback Collection~collectionResultCallback optional

                The results callback

                Returns:
                Promise if no callback passed

                replaceOne(filter, doc, options, callback){Promise}

                Replace a document on MongoDB

                Name Type Default Description
                filter object

                The Filter used to select the document to update

                doc object

                The Document that replaces the matching document

                options object null optional

                Optional settings.

                Name Type Default Description
                upsert boolean false optional

                Update operation is an upsert.

                w number | string null optional

                The write concern.

                wtimeout number null optional

                The write concern timeout.

                j boolean false optional

                Specify a journal write concern.

                bypassDocumentValidation boolean false optional

                Allow driver to bypass schema validation in MongoDB 3.2 or higher.

                session ClientSession optional

                optional session to use for this operation

                callback Collection~updateWriteOpCallback optional

                The command result callback

                Returns:
                Promise if no callback passed

                save(doc, options, callback){Promise}

                Save a document. Simple full document replacement function. Not recommended for efficiency, use atomic
                operators and update instead for more efficient operations.

                Name Type Default Description
                doc object

                Document to save

                options object null optional

                Optional settings.

                Name Type Default Description
                w number | string null optional

                The write concern.

                wtimeout number null optional

                The write concern timeout.

                j boolean false optional

                Specify a journal write concern.

                session ClientSession optional

                optional session to use for this operation

                callback Collection~writeOpCallback optional

                The command result callback

                Deprecated
                • use insertOne, insertMany, updateOne or updateMany
                  Returns:
                  Promise if no callback passed

                  stats(options, callback){Promise}

                  Get all the collection statistics.

                  Name Type Default Description
                  options object null optional

                  Optional settings.

                  Name Type Default Description
                  scale number null optional

                  Divide the returned sizes by scale value.

                  session ClientSession optional

                  optional session to use for this operation

                  callback Collection~resultCallback optional

                  The collection result callback

                  Returns:
                  Promise if no callback passed

                  update(selector, document, options, callback){Promise}

                  Updates documents.

                  Name Type Default Description
                  selector object

                  The selector for the update operation.

                  document object

                  The update document.

                  options object null optional

                  Optional settings.

                  Name Type Default Description
                  w number | string null optional

                  The write concern.

                  wtimeout number null optional

                  The write concern timeout.

                  j boolean false optional

                  Specify a journal write concern.

                  upsert boolean false optional

                  Update operation is an upsert.

                  multi boolean false optional

                  Update one/all documents with operation.

                  bypassDocumentValidation boolean false optional

                  Allow driver to bypass schema validation in MongoDB 3.2 or higher.

                  collation object null optional

                  Specify collation (MongoDB 3.4 or higher) settings for update operation (see 3.4 documentation for available fields).

                  arrayFilters Array null optional

                  optional list of array filters referenced in filtered positional operators

                  session ClientSession optional

                  optional session to use for this operation

                  callback Collection~writeOpCallback optional

                  The command result callback

                  Deprecated
                  • use updateOne, updateMany or bulkWrite
                    Throws:
                    Returns:
                    Promise if no callback passed

                    updateMany(filter, update, options, callback){Promise}

                    Update multiple documents on MongoDB

                    Name Type Default Description
                    filter object

                    The Filter used to select the documents to update

                    update object

                    The update operations to be applied to the document

                    options object null optional

                    Optional settings.

                    Name Type Default Description
                    upsert boolean false optional

                    Update operation is an upsert.

                    w number | string null optional

                    The write concern.

                    wtimeout number null optional

                    The write concern timeout.

                    j boolean false optional

                    Specify a journal write concern.

                    arrayFilters Array null optional

                    optional list of array filters referenced in filtered positional operators

                    session ClientSession optional

                    optional session to use for this operation

                    callback Collection~updateWriteOpCallback optional

                    The command result callback

                    Returns:
                    Promise if no callback passed

                    updateOne(filter, update, options, callback){Promise}

                    Update a single document on MongoDB

                    Name Type Default Description
                    filter object

                    The Filter used to select the document to update

                    update object

                    The update operations to be applied to the document

                    options object null optional

                    Optional settings.

                    Name Type Default Description
                    upsert boolean false optional

                    Update operation is an upsert.

                    w number | string null optional

                    The write concern.

                    wtimeout number null optional

                    The write concern timeout.

                    j boolean false optional

                    Specify a journal write concern.

                    bypassDocumentValidation boolean false optional

                    Allow driver to bypass schema validation in MongoDB 3.2 or higher.

                    arrayFilters Array null optional

                    optional list of array filters referenced in filtered positional operators

                    session ClientSession optional

                    optional session to use for this operation

                    callback Collection~updateWriteOpCallback optional

                    The command result callback

                    Returns:
                    Promise if no callback passed

                    watch(pipeline, options){ChangeStream}

                    Create a new Change Stream, watching for new changes (insertions, updates, replacements, deletions, and invalidations) in this collection.

                    Name Type Default Description
                    pipeline Array null optional

                    An array of aggregation pipeline stages through which to pass change stream documents. This allows for filtering (using $match) and manipulating the change stream documents.

                    options object null optional

                    Optional settings

                    Name Type Default Description
                    fullDocument string 'default' optional

                    Allowed values: ‘default’, ‘updateLookup’. When set to ‘updateLookup’, the change stream will include both a delta describing the changes to the document, as well as a copy of the entire document that was changed from some time after the change occurred.

                    resumeAfter object null optional

                    Specifies the logical starting point for the new change stream. This should be the _id field from a previously returned change stream document.

                    maxAwaitTimeMS number optional

                    The maximum amount of time for the server to wait on new documents to satisfy a change stream query

                    batchSize number null optional

                    The number of documents to return per batch. See aggregation documentation.

                    collation object null optional

                    Specify collation settings for operation. See aggregation documentation.

                    readPreference ReadPreference null optional

                    The read preference. Defaults to the read preference of the database or collection. See read preference documentation.

                    session ClientSession optional

                    optional session to use for this operation

                    Since:
                    • 3.0.0
                    Returns:
                    ChangeStream instance.

                    Type Definitions

                    aggregationCallback(error, cursor)

                    The callback format for an aggregation call

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    cursor AggregationCursor

                    The cursor if the aggregation command was executed successfully.

                    bulkWriteOpCallback(error, result)

                    The callback format for inserts

                    Name Type Description
                    error BulkWriteError

                    An error instance representing the error during the execution.

                    result Collection~BulkWriteOpResult

                    The result object if the command was executed successfully.

                    BulkWriteOpResultObject

                    Properties:
                    Name Type Description
                    insertedCount number

                    Number of documents inserted.

                    matchedCount number

                    Number of documents matched for update.

                    modifiedCount number

                    Number of documents modified.

                    deletedCount number

                    Number of documents deleted.

                    upsertedCount number

                    Number of documents upserted.

                    insertedIds object

                    Inserted document generated Id's, hash key is the index of the originating operation

                    upsertedIds object

                    Upserted document generated Id's, hash key is the index of the originating operation

                    result object

                    The command result object.

                    collectionResultCallback(error, collection)

                    The callback format for the collection method, must be used if strict is specified

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    collection Collection

                    The collection instance.

                    countCallback(error, result)

                    The callback format for results

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    result number

                    The count of documents that matched the query.

                    deleteWriteOpCallback(error, result)

                    The callback format for inserts

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    result Collection~deleteWriteOpResult

                    The result object if the command was executed successfully.

                    deleteWriteOpResultObject

                    Properties:
                    Name Type Description
                    result Object

                    The raw result returned from MongoDB, field will vary depending on server version.

                    Properties
                    Name Type Description
                    ok Number

                    Is 1 if the command executed correctly.

                    n Number

                    The total count of documents deleted.

                    connection Object

                    The connection object used for the operation.

                    deletedCount Number

                    The number of documents deleted.

                    findAndModifyCallback(error, result)

                    The callback format for inserts

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    result Collection~findAndModifyWriteOpResult

                    The result object if the command was executed successfully.

                    findAndModifyWriteOpResultObject

                    Properties:
                    Name Type Description
                    value object

                    Document returned from findAndModify command.

                    lastErrorObject object

                    The raw lastErrorObject returned from the command.

                    ok Number

                    Is 1 if the command executed correctly.

                    insertOneWriteOpCallback(error, result)

                    The callback format for inserts

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    result Collection~insertOneWriteOpResult

                    The result object if the command was executed successfully.

                    insertOneWriteOpResultObject

                    Properties:
                    Name Type Description
                    insertedCount Number

                    The total amount of documents inserted.

                    ops Array.<object>

                    All the documents inserted using insertOne/insertMany/replaceOne. Documents contain the _id field if forceServerObjectId == false for insertOne/insertMany

                    insertedId ObjectId

                    The driver generated ObjectId for the insert operation.

                    connection object

                    The connection object used for the operation.

                    result object

                    The raw command result object returned from MongoDB (content might vary by server version).

                    Properties
                    Name Type Description
                    ok Number

                    Is 1 if the command executed correctly.

                    n Number

                    The total count of documents inserted.

                    insertWriteOpCallback(error, result)

                    The callback format for inserts

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    result Collection~insertWriteOpResult

                    The result object if the command was executed successfully.

                    insertWriteOpResultObject

                    Properties:
                    Name Type Description
                    insertedCount Number

                    The total amount of documents inserted.

                    ops Array.<object>

                    All the documents inserted using insertOne/insertMany/replaceOne. Documents contain the _id field if forceServerObjectId == false for insertOne/insertMany

                    insertedIds Object.<Number, ObjectId>

                    Map of the index of the inserted document to the id of the inserted document.

                    connection object

                    The connection object used for the operation.

                    result object

                    The raw command result object returned from MongoDB (content might vary by server version).

                    Properties
                    Name Type Description
                    ok Number

                    Is 1 if the command executed correctly.

                    n Number

                    The total count of documents inserted.

                    parallelCollectionScanCallback(error, cursors)

                    The callback format for results

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    cursors Array.<Cursor>

                    A list of cursors returned allowing for parallel reading of collection.

                    resultCallback(error, result)

                    The callback format for results

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    result object

                    The result object if the command was executed successfully.

                    updateWriteOpCallback(error, result)

                    The callback format for inserts

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    result Collection~updateWriteOpResult

                    The result object if the command was executed successfully.

                    updateWriteOpResultObject

                    Properties:
                    Name Type Description
                    result Object

                    The raw result returned from MongoDB, field will vary depending on server version.

                    Properties
                    Name Type Description
                    ok Number

                    Is 1 if the command executed correctly.

                    n Number

                    The total count of documents scanned.

                    nModified Number

                    The total count of documents modified.

                    connection Object

                    The connection object used for the operation.

                    matchedCount Number

                    The number of documents that matched the filter.

                    modifiedCount Number

                    The number of documents that were modified.

                    upsertedCount Number

                    The number of documents upserted.

                    upsertedId Object

                    The upserted id.

                    Properties
                    Name Type Description
                    _id ObjectId

                    The upserted _id returned from the server.

                    writeOpCallback(error, result)

                    The callback format for inserts

                    Name Type Description
                    error MongoError

                    An error instance representing the error during the execution.

                    result Collection~WriteOpResult

                    The result object if the command was executed successfully.

                    WriteOpResultObject

                    Properties:
                    Name Type Description
                    ops Array.<object>

                    All the documents inserted using insertOne/insertMany/replaceOne. Documents contain the _id field if forceServerObjectId == false for insertOne/insertMany

                    connection object

                    The connection object used for the operation.

                    result object

                    The command result object.