UNPKG

mingo

Version:

MongoDB query language for in-memory objects

45 lines (44 loc) 1.94 kB
import { Cursor } from "./cursor"; import { Source } from "./lazy"; import type { AnyObject, Criteria, Options, Projection } from "./types"; /** * Represents a query object used to filter and match documents based on specified criteria. * All query, projection, and related expression operators are preloaded into the context by default. * * @example * ```typescript * const query = new Query({ age: { $gt: 18 } }); * const result = query.test({ name: "John", age: 25 }); // true * ``` */ export declare class Query<T = AnyObject> { #private; /** * Creates an instance of the query with the specified condition and options. * This object is preloaded with all query and projection operators. * * @param condition - The query condition object used to define the criteria for matching documents. * @param options - Optional configuration settings to customize the query behavior. */ constructor(condition: Criteria<T>, options: Partial<Options>); private compile; private processOperator; /** * Tests whether the given object satisfies all compiled predicates. * * @template T - The type of the object to test. * @param obj - The object to be tested against the compiled predicates. * @returns `true` if the object satisfies all predicates, otherwise `false`. */ test(obj: T): boolean; /** * Returns a cursor for iterating over the items in the given collection that match the query criteria. * * @typeParam T - The type of the items in the resulting cursor. * @param collection - The source collection to search through. * @param projection - An optional object specifying fields to include or exclude * in the returned items. * @returns A `Cursor` instance for iterating over the matching items. */ find<R>(collection: Source, projection?: Projection<R>): Cursor<R>; }