| 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.2.1</version> | </dependency> | </dependencies> |
|
Install the Driver Dependency with Gradle | 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, ...) |
|