Hierarchy

  • Document
    • IUserDocument

Properties

$locals: Record<string, unknown>

Empty object that you can use for storing properties on the document. This is handy for passing data to middleware without conflicting with Mongoose internals.

$op: null | "save" | "validate" | "remove"

A string containing the current operation that Mongoose is executing on this document. Can be null, 'save', 'validate', or 'remove'.

$where: Record<string, unknown>

Set this property to add additional query filters when Mongoose saves this document and isNew is false.

__v?: any

This documents __v.

_id?: any

This documents _id.

baseModelName?: string

If this is a discriminator model, baseModelName is the name of the base model.

collection: Collection<Document>

Collection the model uses.

db: Connection

Connection the model uses.

email: string
errors?: ValidationError

Returns the current validation errors.

id?: any

The string version of this documents _id.

isNew: boolean

Boolean flag specifying if the document is new.

password: string
role: string
schema: Schema<any, Model<any, any, any, any, any, any>, {}, {}, {}, {}, DefaultSchemaOptions, {}, Document<unknown, {}, FlatRecord<{}>> & Omit<FlatRecord<{}> & Required<{
    _id: unknown;
}>, never>>

The document's schema.

Methods

  • Assert that a given path or paths is populated. Throws an error if not populated.

    Type Parameters

    • Paths = {}

    Parameters

    • path: string | string[]
    • Optional values: Partial<Paths>

    Returns Omit<IUserDocument, keyof Paths> & Paths

  • Returns a deep clone of this document

    Returns IUserDocument

  • Get all subdocs (by bfs)

    Returns Document<any, any, any>[]

  • Returns an array of all populated documents associated with the query

    Returns Document<any, any, any>[]

  • Don't run validation on this path or persist changes to this path.

    Parameters

    • path: string

    Returns void

  • Increments the numeric value at path by the given val. When you call save() on this document, Mongoose will send a $inc as opposed to a $set.

    Parameters

    • path: string | string[]
    • Optional val: number

    Returns IUserDocument

  • Checks if a path is set to its default.

    Parameters

    • path: string

    Returns boolean

  • Getter/setter, determines whether the document was removed or not.

    Parameters

    • Optional val: boolean

    Returns boolean

  • Returns true if the given path is nullish or only contains empty objects. Useful for determining whether this subdoc will get stripped out by the minimize option.

    Parameters

    • path: string

    Returns boolean

  • Checks if a path is invalid

    Parameters

    • path: string

    Returns boolean

  • Marks a path as valid, removing existing validation errors.

    Parameters

    • path: string

    Returns void

  • Returns the model with the given name on this document's associated connection.

    Type Parameters

    • ModelType = Model<unknown, {}, {}, {}, Document<unknown, {}, unknown> & Omit<{
          _id: ObjectId;
      }, never>, any>

    Parameters

    • name: string

    Returns ModelType

  • If this document is a subdocument or populated document, returns the document's parent. Returns undefined otherwise.

    Returns undefined | Document<any, any, any>

  • Getter/setter around the session associated with this document. Used to automatically set session if you save() a doc that you got from a query with an associated session.

    Parameters

    • Optional session: null | ClientSession

    Returns null | ClientSession

  • Alias for set(), used internally to avoid conflicts

    Parameters

    • path: string
    • val: any
    • type: any
    • Optional options: DocumentSetOptions

    Returns IUserDocument

  • Parameters

    • path: string
    • val: any
    • Optional options: DocumentSetOptions

    Returns IUserDocument

  • Parameters

    • value: any

    Returns IUserDocument

  • Removes this document from the db.

    Parameters

    • Optional options: QueryOptions<unknown>

    Returns any

  • Takes a populated field and returns it to its unpopulated state. If called with no arguments, then all populated fields are returned to their unpopulated state.

    Parameters

    • Optional path: string | string[]

    Returns IUserDocument

  • Returns the list of paths that have been directly modified. A direct modified path is a path that you explicitly set, whether via doc.foo = 'bar', Object.assign(doc, { foo: 'bar' }), or doc.set('foo', 'bar').

    Returns string[]

  • Returns true if this document is equal to another document.

    Documents are considered equal when they have matching _ids, unless neither document has an _id, in which case this function falls back to using deepEqual().

    Parameters

    • doc: Document<any, any, any>

    Returns boolean

  • Returns the value of a path.

    Parameters

    • path: string
    • Optional type: any
    • Optional options: any

    Returns any

  • Returns the changes that happened to the document in the format that will be sent to MongoDB.

    Returns UpdateQuery<IUserDocument>

  • Signal that we desire an increment of this documents version.

    Returns IUserDocument

  • Initializes the document without setters or marking anything modified. Called internally after a document is returned from mongodb. Normally, you do not need to call this function on your own.

    Parameters

    • obj: AnyObject
    • Optional opts: AnyObject

    Returns IUserDocument

  • Marks a path as invalid, causing validation to fail.

    Parameters

    • path: string
    • errorMsg: string | NativeError
    • Optional value: any
    • Optional kind: string

    Returns null | NativeError

  • Returns true if path was directly set and modified, else false.

    Parameters

    • path: string | string[]

    Returns boolean

  • Checks if path was explicitly selected. If no projection, always returns true.

    Parameters

    • path: string

    Returns boolean

  • Checks if path is in the init state, that is, it was set by Document#init() and not modified since.

    Parameters

    • path: string

    Returns boolean

  • Returns true if any of the given paths are modified, else false. If no arguments, returns true if any path in this document is modified.

    Parameters

    • Optional path: string | string[]

    Returns boolean

  • Checks if path was selected in the source query which initialized this document.

    Parameters

    • path: string

    Returns boolean

  • Marks the path as having pending changes to write to the db.

    Parameters

    • path: string
    • Optional scope: any

    Returns void

  • Returns the list of paths that have been modified.

    Parameters

    • Optional options: {
          includeChildren?: boolean;
      }
      • Optional includeChildren?: boolean

    Returns string[]

  • Overwrite all values in this document with the values of obj, except for immutable properties. Behaves similarly to set(), except for it unsets all properties that aren't in obj.

    Parameters

    • obj: AnyObject

    Returns IUserDocument

  • Populates document references.

    Type Parameters

    • Paths = {}

    Parameters

    • path: string | PopulateOptions | (string | PopulateOptions)[]

    Returns Promise<MergeType<IUserDocument, Paths>>

  • Type Parameters

    • Paths = {}

    Parameters

    • path: string
    • Optional select: string | AnyObject
    • Optional model: Model<any, {}, {}, {}, any, any>
    • Optional match: AnyObject
    • Optional options: PopulateOptions

    Returns Promise<MergeType<IUserDocument, Paths>>

  • Gets _id(s) used during population of the given path. If the path was not populated, returns undefined.

    Parameters

    • path: string

    Returns any

  • Sends a replaceOne command with this document _id as the query selector.

    Parameters

    • Optional replacement: AnyObject
    • Optional options: null | QueryOptions<unknown>

    Returns Query<any, IUserDocument, {}, IUserDocument>

  • Saves this document by inserting a new document into the database if document.isNew is true, or sends an updateOne operation with just the modified paths if isNew is false.

    Parameters

    • Optional options: SaveOptions

    Returns Promise<IUserDocument>

  • Sets the value of a path, or many paths.

    Parameters

    • path: string
    • val: any
    • type: any
    • Optional options: any

    Returns IUserDocument

  • Parameters

    • path: string
    • val: any
    • Optional options: any

    Returns IUserDocument

  • Parameters

    • value: any

    Returns IUserDocument

  • The return value of this method is used in calls to JSON.stringify(doc).

    Type Parameters

    • T = any

    Parameters

    • Optional options: ToObjectOptions & {
          flattenMaps?: true;
      }

    Returns FlattenMaps<T>

  • Type Parameters

    • T = any

    Parameters

    • options: ToObjectOptions & {
          flattenMaps: false;
      }

    Returns T

  • Converts this document into a plain-old JavaScript object (POJO).

    Type Parameters

    • T = any

    Parameters

    • Optional options: ToObjectOptions

    Returns Require_id<T>

  • Clears the modified state on the specified path.

    Parameters

    • path: string

    Returns void

  • Sends an updateOne command with this document _id as the query selector.

    Parameters

    • Optional update: UpdateWithAggregationPipeline | UpdateQuery<IUserDocument>
    • Optional options: null | QueryOptions<unknown>

    Returns Query<any, IUserDocument, {}, IUserDocument>

  • Executes registered validation rules for this document.

    Parameters

    • Optional pathsToValidate: PathsToValidate
    • Optional options: AnyObject

    Returns Promise<void>

  • Parameters

    • options: {
          pathsToSkip?: pathsToSkip;
      }
      • Optional pathsToSkip?: pathsToSkip

    Returns Promise<void>

  • Executes registered validation rules (skipping asynchronous validators) for this document.

    Parameters

    • options: {
          pathsToSkip?: pathsToSkip;
          [k: string]: any;
      }
      • [k: string]: any
      • Optional pathsToSkip?: pathsToSkip

    Returns null | ValidationError

  • Parameters

    • Optional pathsToValidate: PathsToValidate
    • Optional options: AnyObject

    Returns null | ValidationError