kotlin使用MongoDB
时间: 2025-01-02 07:25:45 浏览: 12
### Kotlin 中使用 MongoDB 进行数据库操作
#### 1. 添加依赖项
为了在 Kotlin 项目中连接并操作 MongoDB,需先引入官方驱动程序 `mongo-kotlin-driver-coroutine` 或者其他社区支持的库。
```kotlin
dependencies {
implementation("org.mongodb:mongodb-driver-sync:4.7.0") // 同步版本
implementation("org.litote.kmongo:kmongo-coroutine:4.8.0") // 基于协程的支持
}
```
#### 2. 创建客户端实例并与数据库建立连接
下面展示的是创建 MongoClient 实例的方式,并指定要使用的数据库名称:
```kotlin
import com.mongodb.client.MongoClients
import org.litote.kmongo.coroutine.CoroutineClient
import org.litote.kmongo.reactivestreams.KMongo
val client: CoroutineClient = KMongo.createClient().coroutine
val database = client.getDatabase("testdb")
```
#### 3. 定义集合和文档结构体
定义一个数据类来表示存储在特定集合中的记录格式。这里假设有一个名为 "users" 的集合用来保存用户资料信息。
```kotlin
data class User(
val id: String,
val name: String,
val age: Int
)
```
#### 4. 执行 CRUD 操作
接下来是一些基本的操作例子,包括插入新条目、查找现有条目、更新已有条目以及删除不再需要的内容。
##### 插入单个文档到 users 集合里:
```kotlin
suspend fun insertUser(userCollection: MongoCollection<User>, user: User): InsertOneResult =
userCollection.insertOne(user).awaitFirstOrNull() ?: throw Exception("Insert failed.")
```
##### 查找所有用户的列表 (分页):
```kotlin
suspend fun findUsersByPage(userCollection: MongoCollection<User>, pageNumber: Long, pageSize: Long): List<User> =
userCollection.find()
.skip((pageNumber - 1) * pageSize)
.limit(pageSize.toInt())
.toList()
```
##### 更新某个具体条件匹配的第一个文档 :
```kotlin
suspend fun updateUserById(userCollection: MongoCollection<User>, userId: String, updates: Document): UpdateResult? =
userCollection.updateOne("{_id:ObjectId('$userId')}", "$set":updates).awaitFirstOrNull()
```
##### 删除符合条件的所有文档 :
```kotlin
suspend fun deleteUserByName(userCollection: MongoCollection<User>, userName: String): DeleteResult =
userCollection.deleteMany(Filters.eq("name", userName)).awaitSingle()
```
以上就是关于如何利用 Kotlin 对 MongoDB 进行简单增删改查的一些指导[^1]。
阅读全文