mongoe
Version:
MongoDB driver with relational functionalities
71 lines (70 loc) • 4.67 kB
TypeScript
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>;
}