deno.land / x / mongoose@6.7.5 / types / query.d.ts
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660declare module 'mongoose' { import mongodb = require('mongodb');
export type ApplyBasicQueryCasting<T> = T | T[] | (T extends (infer U)[] ? U : any) | any; type Condition<T> = ApplyBasicQueryCasting<T> | QuerySelector<ApplyBasicQueryCasting<T>>;
type _FilterQuery<T> = { [P in keyof T]?: Condition<T[P]>; } & RootQuerySelector<T>;
/** * Filter query to select the documents that match the query * @example * ```js * { age: { $gte: 30 } } * ``` */ type FilterQuery<T> = _FilterQuery<T>;
type MongooseQueryOptions<DocType = unknown> = Pick<QueryOptions<DocType>, 'populate' | 'lean' | 'strict' | 'sanitizeProjection' | 'sanitizeFilter'>;
type ProjectionFields<DocType> = { [Key in keyof Omit<LeanDocument<DocType>, '__v'>]?: any } & Record<string, any>;
type QueryWithHelpers<ResultType, DocType, THelpers = {}, RawDocType = DocType> = Query<ResultType, DocType, THelpers, RawDocType> & THelpers;
type QuerySelector<T> = { // Comparison $eq?: T; $gt?: T; $gte?: T; $in?: [T] extends AnyArray<any> ? Unpacked<T>[] : T[]; $lt?: T; $lte?: T; $ne?: T; $nin?: [T] extends AnyArray<any> ? Unpacked<T>[] : T[]; // Logical $not?: T extends string ? QuerySelector<T> | RegExp : QuerySelector<T>; // Element /** * When `true`, `$exists` matches the documents that contain the field, * including documents where the field value is null. */ $exists?: boolean; $type?: string | number; // Evaluation $expr?: any; $jsonSchema?: any; $mod?: T extends number ? [number, number] : never; $regex?: T extends string ? RegExp | string : never; $options?: T extends string ? string : never; // Geospatial // TODO: define better types for geo queries $geoIntersects?: { $geometry: object }; $geoWithin?: object; $near?: object; $nearSphere?: object; $maxDistance?: number; // Array // TODO: define better types for $all and $elemMatch $all?: T extends AnyArray<any> ? any[] : never; $elemMatch?: T extends AnyArray<any> ? object : never; $size?: T extends AnyArray<any> ? number : never; // Bitwise $bitsAllClear?: number | mongodb.Binary | number[]; $bitsAllSet?: number | mongodb.Binary | number[]; $bitsAnyClear?: number | mongodb.Binary | number[]; $bitsAnySet?: number | mongodb.Binary | number[]; };
type RootQuerySelector<T> = { /** @see https://docs.mongodb.com/manual/reference/operator/query/and/#op._S_and */ $and?: Array<FilterQuery<T>>; /** @see https://docs.mongodb.com/manual/reference/operator/query/nor/#op._S_nor */ $nor?: Array<FilterQuery<T>>; /** @see https://docs.mongodb.com/manual/reference/operator/query/or/#op._S_or */ $or?: Array<FilterQuery<T>>; /** @see https://docs.mongodb.com/manual/reference/operator/query/text */ $text?: { $search: string; $language?: string; $caseSensitive?: boolean; $diacriticSensitive?: boolean; }; /** @see https://docs.mongodb.com/manual/reference/operator/query/where/#op._S_where */ $where?: string | Function; /** @see https://docs.mongodb.com/manual/reference/operator/query/comment/#op._S_comment */ $comment?: string; // we could not find a proper TypeScript generic to support nested queries e.g. 'user.friends.name' // this will mark all unrecognized properties as any (including nested queries) [key: string]: any; };
interface QueryTimestampsConfig { createdAt?: boolean; updatedAt?: boolean; }
interface QueryOptions<DocType = unknown> extends PopulateOption, SessionOption { arrayFilters?: { [key: string]: any }[]; batchSize?: number; collation?: mongodb.CollationOptions; comment?: any; context?: string; explain?: mongodb.ExplainVerbosityLike; fields?: any | string; hint?: mongodb.Hint; /** * If truthy, mongoose will return the document as a plain JavaScript object rather than a mongoose document. */ lean?: boolean | any; limit?: number; maxTimeMS?: number; maxscan?: number; multi?: boolean; multipleCastError?: boolean; /** * By default, `findOneAndUpdate()` returns the document as it was **before** * `update` was applied. If you set `new: true`, `findOneAndUpdate()` will * instead give you the object after `update` was applied. */ new?: boolean; overwrite?: boolean; overwriteDiscriminatorKey?: boolean; projection?: ProjectionType<DocType>; /** * if true, returns the raw result from the MongoDB driver */ rawResult?: boolean; readPreference?: string | mongodb.ReadPreferenceMode; /** * An alias for the `new` option. `returnOriginal: false` is equivalent to `new: true`. */ returnOriginal?: boolean; /** * Another alias for the `new` option. `returnOriginal` is deprecated so this should be used. */ returnDocument?: string; runValidators?: boolean; /* Set to `true` to automatically sanitize potentially unsafe user-generated query projections */ sanitizeProjection?: boolean; /** * Set to `true` to automatically sanitize potentially unsafe query filters by stripping out query selectors that * aren't explicitly allowed using `mongoose.trusted()`. */ sanitizeFilter?: boolean; setDefaultsOnInsert?: boolean; skip?: number; snapshot?: any; sort?: any; /** overwrites the schema's strict mode option */ strict?: boolean | string; /** * equal to `strict` by default, may be `false`, `true`, or `'throw'`. Sets the default * [strictQuery](https://mongoosejs.com/docs/guide.html#strictQuery) mode for schemas. */ strictQuery?: boolean | 'throw'; tailable?: number; /** * If set to `false` and schema-level timestamps are enabled, * skip timestamps for this update. Note that this allows you to overwrite * timestamps. Does nothing if schema-level timestamps are not set. */ timestamps?: boolean | QueryTimestampsConfig; upsert?: boolean; writeConcern?: mongodb.WriteConcern;
[other: string]: any; }
class Query<ResultType, DocType, THelpers = {}, RawDocType = DocType> implements SessionOperation { _mongooseOptions: MongooseQueryOptions<DocType>;
/** * Returns a wrapper around a [mongodb driver cursor](https://mongodb.github.io/node-mongodb-native/4.9/classes/FindCursor.html). * A QueryCursor exposes a Streams3 interface, as well as a `.next()` function. * This is equivalent to calling `.cursor()` with no arguments. */ [Symbol.asyncIterator](): AsyncIterableIterator<DocType>;
/** Executes the query */ exec(callback: Callback<ResultType>): void; exec(): Promise<ResultType>;
$where(argument: string | Function): QueryWithHelpers<DocType[], DocType, THelpers, RawDocType>;
/** Specifies an `$all` query condition. When called with one argument, the most recent path passed to `where()` is used. */ all(path: string, val: Array<any>): this; all(val: Array<any>): this;
/** Sets the allowDiskUse option for the query (ignored for < 4.4.0) */ allowDiskUse(value: boolean): this;
/** Specifies arguments for an `$and` condition. */ and(array: FilterQuery<DocType>[]): this;
/** Specifies the batchSize option. */ batchSize(val: number): this;
/** Specifies a `$box` condition */ box(lower: number[], upper: number[]): this; box(val: any): this;
/** * Casts this query to the schema of `model`. * * @param {Model} [model] the model to cast to. If not set, defaults to `this.model` * @param {Object} [obj] If not set, defaults to this query's conditions * @return {Object} the casted `obj` */ cast(model?: Model<any, THelpers> | null, obj?: any): any;
/** * Executes the query returning a `Promise` which will be * resolved with either the doc(s) or rejected with the error. * Like `.then()`, but only takes a rejection handler. */ catch: Promise<ResultType>['catch'];
/** Specifies a `$center` or `$centerSphere` condition. */ circle(path: string, area: any): this; circle(area: any): this;
/** Make a copy of this query so you can re-execute it. */ clone(): this;
/** Adds a collation to this op (MongoDB 3.4 and up) */ collation(value: mongodb.CollationOptions): this;
/** Specifies the `comment` option. */ comment(val: string): this;
/** Specifies this query as a `count` query. */ count(criteria: FilterQuery<DocType>, callback?: Callback<number>): QueryWithHelpers<number, DocType, THelpers, RawDocType>; count(callback?: Callback<number>): QueryWithHelpers<number, DocType, THelpers, RawDocType>;
/** Specifies this query as a `countDocuments` query. */ countDocuments( criteria: FilterQuery<DocType>, options?: QueryOptions<DocType>, callback?: Callback<number> ): QueryWithHelpers<number, DocType, THelpers, RawDocType>; countDocuments(callback?: Callback<number>): QueryWithHelpers<number, DocType, THelpers, RawDocType>;
/** * Returns a wrapper around a [mongodb driver cursor](https://mongodb.github.io/node-mongodb-native/4.9/classes/FindCursor.html). * A QueryCursor exposes a Streams3 interface, as well as a `.next()` function. */ cursor(options?: QueryOptions<DocType>): Cursor<DocType, QueryOptions<DocType>>;
/** * Declare and/or execute this query as a `deleteMany()` operation. Works like * remove, except it deletes _every_ document that matches `filter` in the * collection, regardless of the value of `single`. */ deleteMany(filter?: FilterQuery<DocType>, options?: QueryOptions<DocType>, callback?: Callback): QueryWithHelpers<any, DocType, THelpers, RawDocType>; deleteMany(filter: FilterQuery<DocType>, callback: Callback): QueryWithHelpers<any, DocType, THelpers, RawDocType>; deleteMany(callback: Callback): QueryWithHelpers<any, DocType, THelpers, RawDocType>;
/** * Declare and/or execute this query as a `deleteOne()` operation. Works like * remove, except it deletes at most one document regardless of the `single` * option. */ deleteOne(filter?: FilterQuery<DocType>, options?: QueryOptions<DocType>, callback?: Callback): QueryWithHelpers<any, DocType, THelpers, RawDocType>; deleteOne(filter: FilterQuery<DocType>, callback: Callback): QueryWithHelpers<any, DocType, THelpers, RawDocType>; deleteOne(callback: Callback): QueryWithHelpers<any, DocType, THelpers, RawDocType>;
/** Creates a `distinct` query: returns the distinct values of the given `field` that match `filter`. */ distinct<ReturnType = any>(field: string, filter?: FilterQuery<DocType>, callback?: Callback<number>): QueryWithHelpers<Array<ReturnType>, DocType, THelpers, RawDocType>;
/** Specifies a `$elemMatch` query condition. When called with one argument, the most recent path passed to `where()` is used. */ elemMatch<K = string>(path: K, val: any): this; elemMatch(val: Function | any): this;
/** * Gets/sets the error flag on this query. If this flag is not null or * undefined, the `exec()` promise will reject without executing. */ error(): NativeError | null; error(val: NativeError | null): this;
/** Specifies the complementary comparison value for paths specified with `where()` */ equals(val: any): this;
/** Creates a `estimatedDocumentCount` query: counts the number of documents in the collection. */ estimatedDocumentCount(options?: QueryOptions<DocType>, callback?: Callback<number>): QueryWithHelpers<number, DocType, THelpers, RawDocType>;
/** Specifies a `$exists` query condition. When called with one argument, the most recent path passed to `where()` is used. */ exists<K = string>(path: K, val: boolean): this; exists(val: boolean): this;
/** * Sets the [`explain` option](https://docs.mongodb.com/manual/reference/method/cursor.explain/), * which makes this query return detailed execution stats instead of the actual * query result. This method is useful for determining what index your queries * use. */ explain(verbose?: mongodb.ExplainVerbosityLike): this;
/** Creates a `find` query: gets a list of documents that match `filter`. */ find( filter: FilterQuery<DocType>, projection?: ProjectionType<DocType> | null, options?: QueryOptions<DocType> | null, callback?: Callback<DocType[]> ): QueryWithHelpers<Array<DocType>, DocType, THelpers, RawDocType>; find( filter: FilterQuery<DocType>, projection?: ProjectionType<DocType> | null, callback?: Callback<DocType[]> ): QueryWithHelpers<Array<DocType>, DocType, THelpers, RawDocType>; find( filter: FilterQuery<DocType>, callback?: Callback<DocType[]> ): QueryWithHelpers<Array<DocType>, DocType, THelpers, RawDocType>; find(callback?: Callback<DocType[]>): QueryWithHelpers<Array<DocType>, DocType, THelpers, RawDocType>;
/** Declares the query a findOne operation. When executed, the first found document is passed to the callback. */ findOne( filter?: FilterQuery<DocType>, projection?: ProjectionType<DocType> | null, options?: QueryOptions<DocType> | null, callback?: Callback<DocType | null> ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>; findOne( filter?: FilterQuery<DocType>, projection?: ProjectionType<DocType> | null, callback?: Callback<DocType | null> ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>; findOne( filter?: FilterQuery<DocType>, callback?: Callback<DocType | null> ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>;
/** Creates a `findOneAndDelete` query: atomically finds the given document, deletes it, and returns the document as it was before deletion. */ findOneAndDelete( filter?: FilterQuery<DocType>, options?: QueryOptions<DocType> | null, callback?: (err: CallbackError, doc: DocType | null, res: any) => void ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>;
/** Creates a `findOneAndRemove` query: atomically finds the given document and deletes it. */ findOneAndRemove( filter?: FilterQuery<DocType>, options?: QueryOptions<DocType> | null, callback?: (err: CallbackError, doc: DocType | null, res: any) => void ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>;
/** Creates a `findOneAndUpdate` query: atomically find the first document that matches `filter` and apply `update`. */ findOneAndUpdate( filter: FilterQuery<DocType>, update: UpdateQuery<DocType>, options: QueryOptions<DocType> & { rawResult: true }, callback?: (err: CallbackError, doc: DocType | null, res: ModifyResult<DocType>) => void ): QueryWithHelpers<ModifyResult<DocType>, DocType, THelpers, RawDocType>; findOneAndUpdate( filter: FilterQuery<DocType>, update: UpdateQuery<DocType>, options: QueryOptions<DocType> & { upsert: true } & ReturnsNewDoc, callback?: (err: CallbackError, doc: DocType, res: ModifyResult<DocType>) => void ): QueryWithHelpers<DocType, DocType, THelpers, RawDocType>; findOneAndUpdate( filter?: FilterQuery<DocType>, update?: UpdateQuery<DocType>, options?: QueryOptions<DocType> | null, callback?: (err: CallbackError, doc: DocType | null, res: ModifyResult<DocType>) => void ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>;
/** Declares the query a findById operation. When executed, the document with the given `_id` is passed to the callback. */ findById( id: mongodb.ObjectId | any, projection?: ProjectionType<DocType> | null, options?: QueryOptions<DocType> | null, callback?: Callback<DocType | null> ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>; findById( id: mongodb.ObjectId | any, projection?: ProjectionType<DocType> | null, callback?: Callback<DocType | null> ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>; findById( id: mongodb.ObjectId | any, callback?: Callback<DocType | null> ): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>;
/** Creates a `findByIdAndDelete` query, filtering by the given `_id`. */ findByIdAndDelete(id?: mongodb.ObjectId | any, options?: QueryOptions<DocType> | null, callback?: (err: CallbackError, doc: DocType | null, res: any) => void): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>;
/** Creates a `findOneAndUpdate` query, filtering by the given `_id`. */ findByIdAndUpdate(id: mongodb.ObjectId | any, update: UpdateQuery<DocType>, options: QueryOptions<DocType> & { rawResult: true }, callback?: (err: CallbackError, doc: any, res?: any) => void): QueryWithHelpers<any, DocType, THelpers, RawDocType>; findByIdAndUpdate(id: mongodb.ObjectId | any, update: UpdateQuery<DocType>, options: QueryOptions<DocType> & { upsert: true } & ReturnsNewDoc, callback?: (err: CallbackError, doc: DocType, res?: any) => void): QueryWithHelpers<DocType, DocType, THelpers, RawDocType>; findByIdAndUpdate(id?: mongodb.ObjectId | any, update?: UpdateQuery<DocType>, options?: QueryOptions<DocType> | null, callback?: (CallbackError: any, doc: DocType | null, res?: any) => void): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>; findByIdAndUpdate(id: mongodb.ObjectId | any, update: UpdateQuery<DocType>, callback: (CallbackError: any, doc: DocType | null, res?: any) => void): QueryWithHelpers<DocType | null, DocType, THelpers, RawDocType>;
/** Specifies a `$geometry` condition */ geometry(object: { type: string, coordinates: any[] }): this;
/** * For update operations, returns the value of a path in the update's `$set`. * Useful for writing getters/setters that can work with both update operations * and `save()`. */ get(path: string): any;
/** Returns the current query filter (also known as conditions) as a POJO. */ getFilter(): FilterQuery<DocType>;
/** Gets query options. */ getOptions(): QueryOptions<DocType>;
/** Gets a list of paths to be populated by this query */ getPopulatedPaths(): Array<string>;
/** Returns the current query filter. Equivalent to `getFilter()`. */ getQuery(): FilterQuery<DocType>;
/** Returns the current update operations as a JSON object. */ getUpdate(): UpdateQuery<DocType> | UpdateWithAggregationPipeline | null;
/** Specifies a `$gt` query condition. When called with one argument, the most recent path passed to `where()` is used. */ gt<K = string>(path: K, val: any): this; gt(val: number): this;
/** Specifies a `$gte` query condition. When called with one argument, the most recent path passed to `where()` is used. */ gte<K = string>(path: K, val: any): this; gte(val: number): this;
/** Sets query hints. */ hint(val: any): this;
/** Specifies an `$in` query condition. When called with one argument, the most recent path passed to `where()` is used. */ in<K = string>(path: K, val: any[]): this; in(val: Array<any>): this;
/** Declares an intersects query for `geometry()`. */ intersects(arg?: any): this;
/** Requests acknowledgement that this operation has been persisted to MongoDB's on-disk journal. */ j(val: boolean | null): this;
/** Sets the lean option. */ lean<LeanResultType = RawDocType extends Document ? LeanDocumentOrArray<ResultType> : LeanDocumentOrArrayWithRawType<ResultType, Require_id<RawDocType>>>(val?: boolean | any): QueryWithHelpers<LeanResultType, DocType, THelpers, RawDocType>;
/** Specifies the maximum number of documents the query will return. */ limit(val: number): this;
/** Specifies a `$lt` query condition. When called with one argument, the most recent path passed to `where()` is used. */ lt<K = string>(path: K, val: any): this; lt(val: number): this;
/** Specifies a `$lte` query condition. When called with one argument, the most recent path passed to `where()` is used. */ lte<K = string>(path: K, val: any): this; lte(val: number): this;
/** * Runs a function `fn` and treats the return value of `fn` as the new value * for the query to resolve to. */ transform<MappedType>(fn: (doc: ResultType) => MappedType): QueryWithHelpers<MappedType, DocType, THelpers, RawDocType>;
/** Specifies an `$maxDistance` query condition. When called with one argument, the most recent path passed to `where()` is used. */ maxDistance(path: string, val: number): this; maxDistance(val: number): this;
/** Specifies the maxScan option. */ maxScan(val: number): this;
/** * Sets the [maxTimeMS](https://docs.mongodb.com/manual/reference/method/cursor.maxTimeMS/) * option. This will tell the MongoDB server to abort if the query or write op * has been running for more than `ms` milliseconds. */ maxTimeMS(ms: number): this;
/** Merges another Query or conditions object into this one. */ merge(source: Query<any, any> | FilterQuery<DocType>): this;
/** Specifies a `$mod` condition, filters documents for documents whose `path` property is a number that is equal to `remainder` modulo `divisor`. */ mod<K = string>(path: K, val: number): this; mod(val: Array<number>): this;
/** The model this query was created from */ model: typeof Model;
/** * Getter/setter around the current mongoose-specific options for this query * Below are the current Mongoose-specific options. */ mongooseOptions(val?: MongooseQueryOptions): MongooseQueryOptions;
/** Specifies a `$ne` query condition. When called with one argument, the most recent path passed to `where()` is used. */ ne<K = string>(path: K, val: any): this; ne(val: any): this;
/** Specifies a `$near` or `$nearSphere` condition */ near<K = string>(path: K, val: any): this; near(val: any): this;
/** Specifies an `$nin` query condition. When called with one argument, the most recent path passed to `where()` is used. */ nin<K = string>(path: K, val: any[]): this; nin(val: Array<any>): this;
/** Specifies arguments for an `$nor` condition. */ nor(array: Array<FilterQuery<DocType>>): this;
/** Specifies arguments for an `$or` condition. */ or(array: Array<FilterQuery<DocType>>): this;
/** * Make this query throw an error if no documents match the given `filter`. * This is handy for integrating with async/await, because `orFail()` saves you * an extra `if` statement to check if no document was found. */ orFail(err?: NativeError | (() => NativeError)): QueryWithHelpers<NonNullable<ResultType>, DocType, THelpers, RawDocType>;
/** Specifies a `$polygon` condition */ polygon(path: string, ...coordinatePairs: number[][]): this; polygon(...coordinatePairs: number[][]): this;
/** Specifies paths which should be populated with other documents. */ populate<Paths = {}>(path: string | string[], select?: string | any, model?: string | Model<any, THelpers>, match?: any): QueryWithHelpers<UnpackedIntersection<ResultType, Paths>, DocType, THelpers, UnpackedIntersection<RawDocType, Paths>>; populate<Paths = {}>(options: PopulateOptions | (PopulateOptions | string)[]): QueryWithHelpers<UnpackedIntersection<ResultType, Paths>, DocType, THelpers, UnpackedIntersection<RawDocType, Paths>>;
/** Get/set the current projection (AKA fields). Pass `null` to remove the current projection. */ projection(fields?: ProjectionFields<DocType> | string): ProjectionFields<DocType>; projection(fields: null): null; projection(): ProjectionFields<DocType> | null;
/** Determines the MongoDB nodes from which to read. */ read(pref: string | mongodb.ReadPreferenceMode, tags?: any[]): this;
/** Sets the readConcern option for the query. */ readConcern(level: string): this;
/** Specifies a `$regex` query condition. When called with one argument, the most recent path passed to `where()` is used. */ regex<K = string>(path: K, val: RegExp): this; regex(val: string | RegExp): this;
/** * Declare and/or execute this query as a remove() operation. `remove()` is * deprecated, you should use [`deleteOne()`](#query_Query-deleteOne) * or [`deleteMany()`](#query_Query-deleteMany) instead. */ remove(filter?: FilterQuery<DocType>, callback?: Callback<mongodb.UpdateResult>): Query<mongodb.UpdateResult, DocType, THelpers, RawDocType>;
/** * Declare and/or execute this query as a replaceOne() operation. Same as * `update()`, except MongoDB will replace the existing document and will * not accept any [atomic](https://docs.mongodb.com/manual/tutorial/model-data-for-atomic-operations/#pattern) operators (`$set`, etc.) */ replaceOne(filter?: FilterQuery<DocType>, replacement?: DocType | AnyObject, options?: QueryOptions<DocType> | null, callback?: Callback): QueryWithHelpers<any, DocType, THelpers, RawDocType>;
/** Specifies which document fields to include or exclude (also known as the query "projection") */ select(arg: string | any): this;
/** Determines if field selection has been made. */ selected(): boolean;
/** Determines if exclusive field selection has been made. */ selectedExclusively(): boolean;
/** Determines if inclusive field selection has been made. */ selectedInclusively(): boolean;
/** * Sets the [MongoDB session](https://docs.mongodb.com/manual/reference/server-sessions/) * associated with this query. Sessions are how you mark a query as part of a * [transaction](/docs/transactions.html). */ session(session: mongodb.ClientSession | null): this;
/** * Adds a `$set` to this query's update without changing the operation. * This is useful for query middleware so you can add an update regardless * of whether you use `updateOne()`, `updateMany()`, `findOneAndUpdate()`, etc. */ set(path: string | Record<string, unknown>, value?: any): this;
/** Sets query options. Some options only make sense for certain operations. */ setOptions(options: QueryOptions<DocType>, overwrite?: boolean): this;
/** Sets the query conditions to the provided JSON object. */ setQuery(val: FilterQuery<DocType> | null): void;
setUpdate(update: UpdateQuery<DocType> | UpdateWithAggregationPipeline): void;
/** Specifies an `$size` query condition. When called with one argument, the most recent path passed to `where()` is used. */ size<K = string>(path: K, val: number): this; size(val: number): this;
/** Specifies the number of documents to skip. */ skip(val: number): this;
/** Specifies a `$slice` projection for an array. */ slice(path: string, val: number | Array<number>): this; slice(val: number | Array<number>): this;
/** Specifies this query as a `snapshot` query. */ snapshot(val?: boolean): this;
/** Sets the sort order. If an object is passed, values allowed are `asc`, `desc`, `ascending`, `descending`, `1`, and `-1`. */ sort(arg?: string | { [key: string]: SortOrder | { $meta: 'textScore' } } | [string, SortOrder][] | undefined | null): this;
/** Sets the tailable option (for use with capped collections). */ tailable(bool?: boolean, opts?: { numberOfRetries?: number; tailableRetryInterval?: number; }): this;
/** * Executes the query returning a `Promise` which will be * resolved with either the doc(s) or rejected with the error. */ then: Promise<ResultType>['then'];
/** Converts this query to a customized, reusable query constructor with all arguments and options retained. */ toConstructor<RetType = typeof Query>(): RetType;
/** Declare and/or execute this query as an update() operation. */ update(filter?: FilterQuery<DocType>, update?: UpdateQuery<DocType> | UpdateWithAggregationPipeline, options?: QueryOptions<DocType> | null, callback?: Callback<UpdateWriteOpResult>): QueryWithHelpers<UpdateWriteOpResult, DocType, THelpers, RawDocType>;
/** * Declare and/or execute this query as an updateMany() operation. Same as * `update()`, except MongoDB will update _all_ documents that match * `filter` (as opposed to just the first one) regardless of the value of * the `multi` option. */ updateMany(filter?: FilterQuery<DocType>, update?: UpdateQuery<DocType> | UpdateWithAggregationPipeline, options?: QueryOptions<DocType> | null, callback?: Callback<UpdateWriteOpResult>): QueryWithHelpers<UpdateWriteOpResult, DocType, THelpers, RawDocType>;
/** * Declare and/or execute this query as an updateOne() operation. Same as * `update()`, except it does not support the `multi` or `overwrite` options. */ updateOne(filter?: FilterQuery<DocType>, update?: UpdateQuery<DocType> | UpdateWithAggregationPipeline, options?: QueryOptions<DocType> | null, callback?: Callback<UpdateWriteOpResult>): QueryWithHelpers<UpdateWriteOpResult, DocType, THelpers, RawDocType>;
/** * Sets the specified number of `mongod` servers, or tag set of `mongod` servers, * that must acknowledge this write before this write is considered successful. */ w(val: string | number | null): this;
/** Specifies a path for use with chaining. */ where(path: string, val?: any): this; where(obj: object): this; where(): this;
/** Defines a `$within` or `$geoWithin` argument for geo-spatial queries. */ within(val?: any): this;
/** * If [`w > 1`](/docs/api.html#query_Query-w), the maximum amount of time to * wait for this write to propagate through the replica set before this * operation fails. The default is `0`, which means no timeout. */ wtimeout(ms: number): this; }}
Version Info