| | 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)) |
|
Insert Multiple Documents
| | 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=[]) |
|
Update Multiple Documents
| | 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") | | ) |
|
Delete Multiple Documents
| | 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)) |
|
List the Distinct Documents or Field Values | | collection.distinct<String>(Movie::rated.name) |
|
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=[]) | | ] |
|
| | 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)) |
|
| | 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 | | <dependencies> | | <dependency> | | <groupId>org.mongodb</groupId> | | <artifactId>mongodb-driver-kotlin-coroutine</artifactId> | | <version>5.3.0</version> | | </dependency> | | </dependencies> |
|
Install the Driver Dependency with Gradle | | dependencies { | | implementation("org.mongodb:mongodb-driver-kotlin-coroutine:5.3.0") | | } |
|
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, ...) |
|