UNPKG

mongoe

Version:

MongoDB driver with relational functionalities

71 lines (70 loc) 4.67 kB
import { ClientSession, Collection as Col, CollectionAggregationOptions, CollectionInsertManyOptions, CollectionInsertOneOptions, CollectionMapFunction, CollectionReduceFunction, CommonOptions, DbCollectionOptions, FilterQuery, FindOneAndDeleteOption, FindOneAndUpdateOption, FindOneOptions, GeoHaystackSearchOptions, IndexOptions, IndexSpecification, MapReduceOptions, MongoCountPreferences, MongoDistinctPreferences, OptionalId, ReadPreferenceOrMode, UpdateManyOptions, UpdateOneOptions, UpdateQuery } from "mongodb"; import { Database, RelationInput } from "."; export declare type CollectionOptions = DbCollectionOptions & RelationInput; export declare class Collection<TSchema extends object> { name: string; database: Database; handle: Promise<Col<TSchema>>; constructor(database: Database, name: string, { primaryKey, foreignKeys, ...mongodbOptions }?: CollectionOptions); registerRelation(relation: RelationInput): void; findOne<T = TSchema>(filter: FilterQuery<TSchema>, options?: FindOneOptions<T extends TSchema ? TSchema : T>): Promise<T | null>; find<T = TSchema>(query: FilterQuery<TSchema>, options?: FindOneOptions<T extends TSchema ? TSchema : T>): Promise<T[]>; aggregate<T = TSchema>(pipeline?: object[], options?: CollectionAggregationOptions): Promise<T[]>; countDocuments(query?: FilterQuery<TSchema>, options?: MongoCountPreferences): Promise<number>; distinct(key: string, query?: FilterQuery<TSchema>, options?: MongoDistinctPreferences): Promise<any[]>; estimatedDocumentCount(query?: FilterQuery<TSchema>, options?: MongoCountPreferences): Promise<number>; geoHaystackSearch(x: number, y: number, options?: GeoHaystackSearchOptions): Promise<any>; isCapped(options?: { session: ClientSession; }): Promise<any>; mapReduce<TKey, TValue>(map: CollectionMapFunction<TSchema> | string, reduce: CollectionReduceFunction<TKey, TValue> | string, options?: MapReduceOptions): Promise<any>; stats(options?: { scale: number; session?: ClientSession; }): Promise<import("mongodb").CollStats>; options(options?: { session: ClientSession; }): Promise<any>; insertOne(doc: OptionalId<TSchema>, options?: CollectionInsertOneOptions): Promise<import("mongodb").WithId<TSchema>>; insertMany(docs: Array<OptionalId<TSchema>>, options?: CollectionInsertManyOptions): Promise<import("mongodb").WithId<TSchema>[]>; updateOne(filter: FilterQuery<TSchema>, update: UpdateQuery<TSchema> | Partial<TSchema>, options?: UpdateOneOptions): Promise<import("mongodb").UpdateWriteOpResult>; updateMany(filter: FilterQuery<TSchema>, update: UpdateQuery<TSchema> | Partial<TSchema>, options?: UpdateManyOptions): Promise<import("mongodb").UpdateWriteOpResult>; findOneAndUpdate(filter: FilterQuery<TSchema>, update: UpdateQuery<TSchema> | TSchema, options?: FindOneAndUpdateOption<TSchema>): Promise<NonNullable<TSchema> | null>; deleteOne(filter: FilterQuery<TSchema>, options?: CommonOptions & { bypassDocumentValidation?: boolean; }, deletedKeys?: Record<string, Array<any>>): Promise<import("mongodb").DeleteWriteOpResultObject>; deleteMany(filter: FilterQuery<TSchema>, options?: CommonOptions, deletedKeys?: Record<string, Array<any>>): Promise<import("mongodb").DeleteWriteOpResultObject>; findOneAndDelete(filter: FilterQuery<TSchema>, options?: FindOneAndDeleteOption<TSchema>, deletedKeys?: Record<string, Array<any>>): Promise<NonNullable<TSchema> | null>; drop(options?: { session: ClientSession; }, deletedKeys?: Record<string, Array<any>>): Promise<any>; createIndex(fieldOrSpec: string | any, options?: IndexOptions): Promise<string>; createIndexes(indexSpecs: IndexSpecification[], options?: { session?: ClientSession; }): Promise<any>; dropIndex(indexName: string, options?: CommonOptions & { maxTimeMS?: number; }): Promise<any>; dropIndexes(options?: { session?: ClientSession; maxTimeMS?: number; }): Promise<any>; indexes(options?: { session: ClientSession; }): Promise<any>; indexExists(indexes: string | string[], options?: { session: ClientSession; }): Promise<boolean>; indexInformation(options?: { full: boolean; session: ClientSession; }): Promise<any>; listIndexes(options?: { batchSize?: number; readPreference?: ReadPreferenceOrMode; session?: ClientSession; }): Promise<any[]>; reIndex(options?: { session: ClientSession; }): Promise<any>; }