Skip to content

CountOperations

Interface grouping MongoDB operations relating to counting documents.

Inheritors

Properties

context

@LowLevelApi



abstract val context: BsonContext

Functions

count

abstract suspend fun count(): Long

Counts how many documents exist in the collection.

External resources

See also

abstract suspend fun count(options: CountOptions<Document>.() -> Unit = {}, predicate: FilterQuery<Document>.() -> Unit): Long

Counts how many documents match predicate in the collection.

Example
class User(
    val name: String,
    val age: Int,
)

collection.count {
    User::name eq "foo"
    User::age eq 10
}
External resources

countEstimated

abstract suspend fun countEstimated(): Long

Counts all documents in the collection.

This function reads collection metadata instead of actually counting through all documents. This makes it much more performant (almost no CPU nor RAM usage), but the count may be slightly out of date.

In particular, it may become inaccurate when:

  • there are orphaned documents in a shared cluster,

  • an unclean shutdown happened.

Views do not possess the required metadata. When this function is called on a view (either a MongoDB view or a filter logical view), a regular count is executed instead.

External resources

See also

exists

open suspend fun exists(options: CountOptions<Document>.() -> Unit = {}, predicate: FilterQuery<Document>.() -> Unit): Boolean

Tests if there exists a document that matches predicate in the collection.

This method is a convenience function for calling count with a limit of 1.

Example
class User(
    val name: String,
    val age: Int,
)

collection.exists {
    User::name eq "foo"
    User::age eq 10
}