Options
All
  • Public
  • Public/Protected
  • All
Menu

Hierarchy

  • EntityManager

Index

Constructors

Properties

client: MongoClient
exceptionFactory: ExceptionFactory
log: Debugger = ...
models: Map<string, ClassConstructor<any>> = ...
repositories: Map<string, any> = ...
sessionLoaderService: SessionLoaderService

Methods

  • clearSessionContext(): void
  • count<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: CountDocumentsOptions): Promise<number>
  • createIndexs<Model>(model: ClassConstructor<Model>): Promise<undefined | string[]>
  • deleteCascade<Model>(classType: ClassConstructor<Model>, entity: WithId<Model>): Promise<void>
  • deleteMany<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: DeleteOptions): Promise<DeleteResult>
  • deleteOne<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: DeleteOptions): Promise<DeleteResult>
  • find<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: FindOptions<Model>): Promise<FindCursor<WithId<Model>>>
  • Type parameters

    Parameters

    • classType: ClassConstructor<Model>
    • query: Filter<Model>
    • options: FindOptions<Model> = {}

    Returns Promise<FindCursor<WithId<Model>>>

  • findOne<Model>(classType: ClassConstructor<Model>, query: Filter<Model>, options?: FindOptions<Document>): Promise<undefined | WithId<Model>>
  • Type parameters

    Parameters

    • classType: ClassConstructor<Model>
    • query: Filter<Model>
    • options: FindOptions<Document> = {}

    Returns Promise<undefined | WithId<Model>>

  • fromPlain<Model>(classType: ClassConstructor<Model>, data: object, options?: ClassTransformOptions): Model
  • getClient(): MongoClient
  • getCollection<Model>(nameOrInstance: Model | ClassConstructor<Model>, databaseName?: string): Collection<Document>
  • getCollectionName<Model>(nameOrInstance: Model | ClassConstructor<Model>): string
  • getDatabase(databaseName?: string): Db
  • getModel(id: string): undefined | ClassConstructor<any>
  • getModels(): Map<string, ClassConstructor<any>>
  • getRelationship<R>(obj: any, property: string, options?: FindOptions<Document>): Promise<undefined | WithId<R>>
  • getRelationships<R>(obj: any, property: string, options?: FindOptions<Document>): Promise<WithId<R>[]>
  • getRepository<Model, R>(classType: ClassConstructor<Model>): R
  • getSessionContext(): ClientSessionContext
  • isIdQuery(query: any): boolean
  • isIdsQuery(query: any): boolean
  • merge<Model>(entity: Model, data: Model, excludePrefixes?: string[]): Model
  • registerModel<Model>(name: string, model: ClassConstructor<Model>): Promise<EntityManager>
  • registerRepository<Model, R>(name: string, repository: R): EntityManager
  • save<Model>(entity: Model | WithId<Model>, options?: (InsertOneOptions & { skipValidation?: boolean; validatorOptions?: ValidatorOptions }) & (UpdateOptions & { skipValidation?: boolean; validatorOptions?: ValidatorOptions })): Promise<WithId<Model>>
  • Type parameters

    Parameters

    • entity: Model | WithId<Model>
    • options: (InsertOneOptions & { skipValidation?: boolean; validatorOptions?: ValidatorOptions }) & (UpdateOptions & { skipValidation?: boolean; validatorOptions?: ValidatorOptions }) = {}

    Returns Promise<WithId<Model>>

  • setSessionContext(mongoSession: ClientSession): void
  • startSessionWithTransaction(transactionFn: (session: ClientSession) => Promise<any>, options?: { sessionOptions?: ClientSessionOptions; transactionOptions?: TransactionOptions; useContext?: boolean }): Promise<ClientSession>
  • To avoid Transaction Errors, it is important to keep a sequential approach in the way transactions are commited to the session. ie: do not to use Promise.all (parallel execution) in your transaction function as it could cause inconsistencies in the order in which transactions will be committed to the session.

    Parameters

    • transactionFn: (session: ClientSession) => Promise<any>
        • (session: ClientSession): Promise<any>
        • Parameters

          • session: ClientSession

          Returns Promise<any>

    • options: { sessionOptions?: ClientSessionOptions; transactionOptions?: TransactionOptions; useContext?: boolean } = {}
      • Optional sessionOptions?: ClientSessionOptions
      • Optional transactionOptions?: TransactionOptions
      • Optional useContext?: boolean

    Returns Promise<ClientSession>

  • validate<Model>(obj: Model, validatorOptions?: ValidatorOptions, throwError?: boolean): Promise<ValidationError[]>
  • watch<Model>(classType: ClassConstructor<Model>, pipes?: Document[], options?: ChangeStreamOptions): ChangeStream<WithId<Model>>
  • Type parameters

    Parameters

    • classType: ClassConstructor<Model>
    • Optional pipes: Document[]
    • options: ChangeStreamOptions = {}

    Returns ChangeStream<WithId<Model>>