mongo-bolt
Version:
A lightweight, beginner-friendly MongoDB wrapper with inbuilt caching and simplified joins/indexing.
34 lines (33 loc) • 2.12 kB
TypeScript
import type { config } from './types/Datatypes.d.ts';
import mongoose, { SchemaDefinition, SchemaDefinitionType, IndexDefinition } from 'mongoose';
import AggregtationBuilder from './AggregateFunctions/index.js';
declare class MongoDB {
private config;
private connector;
constructor(config: config);
connect(): Promise<void>;
createStore<T>(collectionName: string, schema: SchemaDefinition<SchemaDefinitionType<T>>): Promise<void>;
insertItem<T>(collectionName: string, documentData: T): Promise<void>;
insertItems<T>(collectionName: string, documentsData: T[]): Promise<void>;
findItem<T>(collectionName: string, query?: Record<string, any>): Promise<T[]>;
updateItems(collectionName: string, query: Record<string, any>, update: Record<string, any>): Promise<number>;
deleteStore(collectionName: string): Promise<void>;
getMongoose(): Promise<typeof mongoose>;
dropItem(storeName: string, itemInfo: Record<string, any>): Promise<void>;
dropItems(storeName: string, itemInfo: Record<string, any>): Promise<void>;
truncateStore(storeName: string): Promise<void>;
alterStore<T, U>(storeName: string, newSchema: SchemaDefinition<SchemaDefinitionType<U>>, changeValues: Record<string, any>): Promise<void>;
findAndPopulateById<T>(storeName: string, thingsToBePopulated: string | string[], query: Record<string, any>): Promise<T[]>;
aggregate<T>(storeName: string, pipeline: any): Promise<any[]>;
pipelineBuilder(): AggregtationBuilder;
createIndex(storeName: string, column: string, order: string, options: any): Promise<void>;
viewIndexes(storeName: string): Promise<IndexDefinition[]>;
dropIndex(storeName: string, indexName: string): Promise<void>;
findAndPopulateByKey(fromstoreName: string, query: Record<string, any>, fromKey: string, findinstoreName: string, inKey: string): Promise<any[]>;
startTransaction(): Promise<void>;
commitTransaction(): Promise<void>;
abortTransaction(): Promise<void>;
getSession(): Promise<mongoose.ClientSession | null>;
disconnect(): Promise<void>;
}
export default MongoDB;