@configurator/ravendb
Version:
RavenDB client for Node.js
50 lines (49 loc) • 4.2 kB
TypeScript
import { IDocumentQueryBaseSingle } from "./IDocumentQueryBaseSingle";
import { IAggregationDocumentQuery } from "../Queries/Facets/IAggregationDocumentQuery";
import { IEnumerableQuery } from "./IEnumerableQuery";
import { QueryResult } from "../Queries/QueryResult";
import { DocumentType } from "../DocumentAbstractions";
import { QueryData } from "../Queries/QueryData";
import { GroupBy } from "../Queries/GroupBy";
import { IDocumentQueryBase } from "./IDocumentQueryBase";
import { IGroupByDocumentQuery } from "./IGroupByDocumentQuery";
import { IFacetBuilder } from "../Queries/Facets/IFacetBuilder";
import { FacetBase } from "../Queries/Facets/FacetBase";
import { IMoreLikeThisBuilderForDocumentQuery } from "../Queries/MoreLikeThis/IMoreLikeThisBuilderForDocumentQuery";
import { MoreLikeThisBase } from "../Queries/MoreLikeThis/MoreLikeThisBase";
import { ISuggestionBuilder } from "../Queries/Suggestions/ISuggestionBuilder";
import { ISuggestionDocumentQuery } from "../Queries/Suggestions/ISuggestionDocumentQuery";
import { SuggestionBase } from "../Queries/Suggestions/SuggestionBase";
import { ITimeSeriesQueryBuilder } from "../Queries/TimeSeries/ITimeSeriesQueryBuilder";
import { TimeSeriesAggregationResult } from "../Queries/TimeSeries/TimeSeriesAggregationResult";
import { TimeSeriesRawResult } from "../Queries/TimeSeries/TimeSeriesRawResult";
import { Field } from "../../Types";
import { ProjectionBehavior } from "../Queries/ProjectionBehavior";
import { IFilterFactory } from "../Queries/IFilterFactory";
export interface IDocumentQuery<T extends object> extends IDocumentQueryBase<T, IDocumentQuery<T>>, IDocumentQueryBaseSingle<T>, IEnumerableQuery<T> {
indexName: any;
isDistinct: any;
getQueryResult(): Promise<QueryResult>;
selectFields<TProjection extends object>(property: string, projectionClass: DocumentType<TProjection>): IDocumentQuery<TProjection>;
selectFields<TProjection extends object>(properties: string[], projectionClass: DocumentType<TProjection>): IDocumentQuery<TProjection>;
selectFields<TProjection extends object>(properties: string[], projectionClass: DocumentType<TProjection>, projectionBehavior: ProjectionBehavior): IDocumentQuery<TProjection>;
selectFields<TProjection extends object>(properties: string[]): IDocumentQuery<TProjection>;
selectFields<TProjection extends Object>(property: string): IDocumentQuery<TProjection>;
selectFields<TProjection extends object>(queryData: QueryData, projectionClass: DocumentType<TProjection>): IDocumentQuery<TProjection>;
selectFields<TProjection extends object>(queryData: QueryData, projectionClass: DocumentType<TProjection>, projectionBehavior: ProjectionBehavior): IDocumentQuery<TProjection>;
selectTimeSeries(timeSeriesQuery: (builder: ITimeSeriesQueryBuilder) => void, projectionClass: DocumentType<TimeSeriesAggregationResult>): IDocumentQuery<TimeSeriesAggregationResult>;
selectTimeSeries(timeSeriesQuery: (builder: ITimeSeriesQueryBuilder) => void, projectionClass: DocumentType<TimeSeriesRawResult>): IDocumentQuery<TimeSeriesRawResult>;
ofType<TResult extends object>(resultClass: DocumentType<TResult>): IDocumentQuery<TResult>;
groupBy(fieldName: Field<T>, ...fieldNames: string[]): IGroupByDocumentQuery<T>;
groupBy(field: GroupBy, ...fields: GroupBy[]): IGroupByDocumentQuery<T>;
moreLikeThis(builder: (moreLikeThisBuilder: IMoreLikeThisBuilderForDocumentQuery<T>) => void): IDocumentQuery<T>;
moreLikeThis(moreLikeThis: MoreLikeThisBase): IDocumentQuery<T>;
filter(builder: (factory: IFilterFactory<T>) => void): IDocumentQuery<T>;
filter(builder: (factory: IFilterFactory<T>) => void, limit: number): IDocumentQuery<T>;
suggestUsing(suggestion: SuggestionBase): ISuggestionDocumentQuery<T>;
suggestUsing(action: (builder: ISuggestionBuilder<T>) => void): ISuggestionDocumentQuery<T>;
aggregateBy(action: (builder: IFacetBuilder<T>) => void): IAggregationDocumentQuery<T>;
aggregateBy(facet: FacetBase): IAggregationDocumentQuery<T>;
aggregateBy(...facet: FacetBase[]): IAggregationDocumentQuery<T>;
aggregateUsing(facetSetupDocumentId: string): IAggregationDocumentQuery<T>;
}