MongoDB 官方驅動體積大、協議複雜、安全風險高(暴露數據庫端口、認證信息硬編碼)。生產環境請採用 「移動端 → REST/gRPC API → 後端服務 → MongoDB」 三層架構。
| 方案 | 優點 | 缺點 | 適用場景 |
|---|---|---|---|
| 直連 MongoDB | 開發快,無需寫後端 | 安全極差;驅動包大(>5MB);網絡不穩導致連接斷裂;無法統一業務邏輯 | 僅限內網測試、個人學習 Demo |
| 後端暴露 REST API | 安全可控;跨平台;易擴展;Android 只需 OkHttp/Retrofit | 需開發維護後端服務 | 所有生產項目 |
| Realm / ObjectBox 同步 | 離線優先;自動同步;移動端原生 | 學習成本;同步服務器成本 | 複雜離線場景、實時協作 |
implementation 'org.mongodb:mongo-java-driver:3.12.14'<uses-permission android:name="android.permission.INTERNET" />// Kotlin 協程示例
lifecycleScope.launch(Dispatchers.IO) {
val client = MongoClients.create("mongodb://user:pwd@host:27017")
val db = client.getDatabase("mydb")
val coll = db.getCollection("test")
coll.insertOne(Document("key", "value"))
client.close()
}
MongoClientSettings 設置 maxConnectionPoolSize、socketTimeout。學習階段可嘗試直連體驗驅動用法,但任何上線項目都必須通過後端 API 隔離數據庫。這不僅是安全規範,更是微服務架構、多端復用、熔斷限流的基礎。