Docs Menu
Docs Home
/ / /
Kotlin Coroutine

Quick Reference

This page shows the driver syntax for several MongoDB commands and links to their related reference and API documentation.

The examples on the page use the following data class to represent MongoDB documents:

data class Movie(
val title: String,
val year: Int,
val rated: String? = "Not Rated",
val genres: List<String>? = listOf()
)
Command
Syntax
Find a Document

API Documentation
Usage Example
collection.find(
Filters.eq(Movie::title.name, "Shrek")
).firstOrNull()
Movie(title=Shrek, year=2001, ...)
collection.find(
Filters.eq(Movie::year.name, 2004)
)
[
Movie(title=Shrek 2, year=2004, ...),
Movie(title=Spider-Man 2, year=2004, ...),
Movie(title=National Treasure, year=2004, ...),
...
]
collection.insertOne(Movie("Shrek", 2001))
collection.insertMany(
listOf(
Movie("Shrek", 2001),
Movie("Shrek 2", 2004),
Movie("Shrek the Third", 2007),
Movie("Shrek Forever After", 2010),
)
)
collection.updateOne(
Filters.eq(Movie::title.name, "Shrek"),
Updates.set(Movie::rated.name, "PG")
)
Movie(title=Shrek, year=2001, rated=PG, genres=[])
collection.updateMany(
Filters.regex(Movie::title.name, "Shrek"),
Updates.set(Movie::rated.name, "PG")
)
[
Movie(title=Shrek, year=2001, rated=PG, genres=[]),
Movie(title=Shrek 2, year=2004, rated=PG, genres=[]),
Movie(title=Shrek the Third, year=2007, rated=PG, genres=[]),
Movie(title=Shrek Forever After, year=2010, rated=PG, genres=[])
]
Update an Array in a Document

collection.updateOne(
Filters.eq(Movie::title.name, "Shrek"),
Updates.addEachToSet(Movie::genres.name, listOf("Family", "Fantasy"))
)
Movie(title=Shrek, year=2001, rated=Not Rated, genres=[Family, Fantasy])
collection.replaceOne(
Filters.eq(Movie::title.name, "Shrek"),
Movie("Kersh", 1002, "GP")
)
Movie(title=Kersh, year=1002, rated=GP, genres=[])
collection.deleteOne(
Filters.eq(Movie::title.name, "Shrek")
)
collection.deleteMany(
Filters.regex(Movie::title.name, "Shrek")
)
collection.bulkWrite(
listOf(
InsertOneModel(Movie("Shrek", 2001)),
DeleteManyModel(Filters.lt(Movie::year.name, 2004)),
)
)
val changeStream = collection.watch()
changeStream.collect {
println("Change to ${it.fullDocument?.title}")
}
Access Results from a Query as a List
collection.find().toList()
[
Movie(title=Shrek, year=2001, rated=Not Rated, genres=[]),
Movie(title=Shrek 2, year=2004, rated=Not Rated, genres=[]),
Movie(title=Shrek the Third, year=2007, rated=Not Rated, genres=[]),
Movie(title=Shrek Forever After, year=2010, rated=Not Rated, genres=[])
]
collection.countDocuments(Filters.eq("year", 2001))
42
List the Distinct Documents or Field Values
collection.distinct<String>(Movie::rated.name)
[Not Rated, PG, PG-13]
Limit the Number of Documents Retrieved

collection.find()
.limit(2)
[
Movie(title=Shrek, year=2001, rated=Not Rated, genres=[]),
Movie(title=Shrek 2, year=2004, rated=Not Rated, genres=[])
]
Skip Retrieved Documents

collection.find()
.skip(2)
[
Movie(title=Shrek the Third, year=2007, rated=Not Rated, genres=[]),
Movie(title=Shrek Forever After, year=2010, rated=Not Rated, genres=[])
]
Sort the Documents When Retrieving Them

collection.find().sort(Sorts.descending(Movie::year.name))
[
Movie(title=Shrek Forever After, year=2010, rated=Not Rated, genres=[]),
Movie(title=Shrek the Third, year=2007, rated=Not Rated, genres=[]),
Movie(title=Shrek 2, year=2004, rated=Not Rated, genres=[]),
Movie(title=Shrek, year=2001, rated=Not Rated, genres=[])
]
Project Document Fields When Retrieving Them

data class Result(val title: String)
collection.find<Result>()
.projection(Projections.include(Movie::title.name))
Result(title=Shrek)
collection.createIndex(Indexes.ascending(Movie::title.name))
collection.find(Filters.text("Forever"));
[Movie(title=Shrek Forever After, year=2010, rated=Not Rated, genres=[])]
Install the Driver Dependency with Maven
pom.xml
<dependencies>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-kotlin-coroutine</artifactId>
<version>5.2.1</version>
</dependency>
</dependencies>
Install the Driver Dependency with Gradle
build.gradle.kts
dependencies {
implementation("org.mongodb:mongodb-driver-kotlin-coroutine:5.2.1")
}
Access Data from a Flow Iteratively

val flow = collection.find(
Filters.eq(Movie::year.name, 2004)
)
flow.collect { println(it) }
Movie(title=2001: A Space Odyssey, ...)
Movie(title=The Sound of Music, ...)

Back

Quick Start