Skip to content

MongoDB request DSLopensavvy.ktmongo.dsl.aggregationAggregationPipeline

AggregationPipeline

An aggregation pipeline.

Aggregation pipelines read data from one or more collections and transform it in a manner of ways. Finally, the data can be sent to the server, or written to another collection.

Example

invoices.aggregate()
    .match { Invoice::isDraft eq false }
    .set {
        Invoice::anomaly set (of(Invoice::modificationDate) lt of(Invoice::creationDate))
    }
    .sort { ascending(Invoice::creationDate) }
    .toList()

External resources

Properties

context

abstract val context: 

The context used to generate this pipeline.

Functions

countTo

Counts how many elements exist in the pipeline and outputs a single document containing a single field containing the count.

open fun <Output : Any> countTo(field: Field<Output, Number>): Pipeline<Output>

Counts how many elements exist in the pipeline and outputs a single document containing a single field containing the count.

embedInUnionWith

abstract fun embedInUnionWith(writer: )

Writes this pipeline into a $unionWith stage.

group

open fun <Out : Any> group(block: AccumulationOperators<Document, Out>.() -> Unit): Pipeline<Out>

Combines multiple documents into a single document.

limit

open fun limit(amount: Int): Pipeline<Document>

Limits the number of elements passed to the next stage to amount.

open fun limit(amount: Long): Pipeline<Document>

Limits the number of elements passed to the next stage to amount.

match

open fun match(filter: FilterQuery<Document>.() -> Unit): Pipeline<Document>

Filters documents based on a specified filter.

project

Specifies a list of fields which should be kept in the document.

reinterpret

abstract fun <New : Any> reinterpret(): Pipeline<New>

Changes the type of the returned document, with no type-safety.

sample

open fun sample(size: Int): Pipeline<Document>

Randomly selects size documents.

set

open fun set(block: SetStageOperators<Document>.() -> Unit): Pipeline<Document>

Adds new fields to documents, or overwrites existing fields.

skip

open fun skip(amount: Int): Pipeline<Document>

Skips over the specified amount of documents that pass into the stage, and passes the remaining documents to the next stage.

open fun skip(amount: Long): Pipeline<Document>

Skips over the specified amount of documents that pass into the stage, and passes the remaining documents to the next stage.

sort

open fun sort(block: SortOptionDsl<Document>.() -> Unit): Pipeline<Document>

Specifies in which order elements should be sorted.

toString

abstract override fun toString(): String

JSON representation of this pipeline.

unionWith

Combines two aggregations into a single result set.

unset

Removes fields from documents.

withStage

abstract fun withStage(stage: BsonNode): Pipeline<Document>

Creates a new pipeline that expands on the current one by adding stage.

writeTo

abstract fun writeTo(writer: )

Writes the entire pipeline into writer.