mongo-base-crud
Version:
Class to handler access and handler database
68 lines (67 loc) • 2.87 kB
TypeScript
/// <reference types="mongoose/types/aggregate" />
/// <reference types="mongoose/types/callback" />
/// <reference types="mongoose/types/collection" />
/// <reference types="mongoose/types/connection" />
/// <reference types="mongoose/types/cursor" />
/// <reference types="mongoose/types/document" />
/// <reference types="mongoose/types/error" />
/// <reference types="mongoose/types/expressions" />
/// <reference types="mongoose/types/helpers" />
/// <reference types="mongoose/types/middlewares" />
/// <reference types="mongoose/types/indexes" />
/// <reference types="mongoose/types/models" />
/// <reference types="mongoose/types/mongooseoptions" />
/// <reference types="mongoose/types/pipelinestage" />
/// <reference types="mongoose/types/populate" />
/// <reference types="mongoose/types/query" />
/// <reference types="mongoose/types/schemaoptions" />
/// <reference types="mongoose/types/schematypes" />
/// <reference types="mongoose/types/session" />
/// <reference types="mongoose/types/types" />
/// <reference types="mongoose/types/utility" />
/// <reference types="mongoose/types/validation" />
/// <reference types="mongoose/types/virtuals" />
/// <reference types="mongoose/types/inferschematype" />
/// <reference types="mongoose/types/inferrawdoctype" />
import { Schema, Model, Connection } from "mongoose";
import { DocumentWithId, Filter, IDatabase, List, FilterNoOffset } from "../IDatabase";
export type MongoConfig = {
prefixName?: string;
fullUrl: string;
database?: string;
disablePlural?: boolean;
};
export interface CollectionInfo {
name: string;
schema: Schema;
collection: Model<Schema>;
}
export declare class MongoDbAccess implements IDatabase {
config: any;
static collectionsInfo: Map<string, Schema>;
protected static getCollectionInfoOrDefault(collectionName: string, indexes?: any): Schema;
protected static models: Map<string, any>;
static getInstance(collectionName: string, databaseName?: string, indexes?: any, connectionTryingTimes?: number, defaultConfig?: MongoConfig): Promise<MongoDbAccess>;
mongoose: Connection;
collection: string;
model: any;
constructor(config: any, collectionName: string, mongo: Connection, _model: any);
private formatDoc;
aggregate<T>(pipeline: any[]): Promise<T>;
getById<T>(id: string): Promise<T | null>;
private handleFilter;
findAll<T>(filterOffset: FilterNoOffset): Promise<T[]>;
find<T>(filterOffset: Filter): Promise<List<T>>;
insert(data: {
[key: string]: any;
id?: string | undefined;
}): Promise<DocumentWithId>;
update(data: {
[key: string]: any;
id: string;
}): Promise<DocumentWithId>;
partialUpdate(id: string, updates: Partial<{
[key: string]: any;
}>): Promise<DocumentWithId>;
delete(id: string): Promise<any>;
}