【前言】一般来讲,Android使用的数据库都是自带的SQLite数据库。Web重量级的MySQL、Orcacle、NOSQL等都不适用于Android项目的开发。但是我发现了一个Web上最近几年比较火的一个数据库 ---- MongoDB。查看它的官网发现,它还可以用于Android开发,而且官方文档也给出了一些API说明。于是我决定写下这篇博客分享一下MongoDB在Android上怎么使用。

【说明】:MongoDB也可以在iOS上面使用,我是做安卓开发的,本文只讲解MongoDB在Android上面的使用,iOS的使用情况请上MongoDB官网自行查阅。


一、准备工作

(一)、环境要求
  • Android系统 >= 5.0
  • API >= 21
  • 支持的设备CPU型号:armeabi-v7a、arm64-v8a或x86_64(不支持x86设备)。
(二)、创建一个新的Android项目,或者打开已存在的项目。

创建一个新项目,截图如下:





MongoDB 企业版下载 mongodb 安卓_Android


(三)、然后做以下配置

在module的build.gradle文件中添加依赖项:

dependencies {
    // 添加 MongoDB Mobile SDK
    implementation 'org.mongodb:stitch-android-sdk:4.1.0'
}

然后在module的build.gradleandroid节点里面文件中添加java 1.8支持:

android {
    compileSdkVersion 28
    defaultConfig {
        applicationId "com.lzw.mongodbdemo"
        minSdkVersion 25
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"
        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
        }
    }

    // 编译选项
    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }

}
(四)、最后点击右上角的Sync Now,表示下载MongoDB SDK并自动执行了gradle build命令。

编译成功如下图所示:



MongoDB 企业版下载 mongodb 安卓_Mobile_02



三、MongoDB SDK在本地的路径

(一)、MongoDB SDK会有很多附带的依赖包

如下图所示:



MongoDB 企业版下载 mongodb 安卓_MongoDB 企业版下载_03


(二)、本地路径

下载的mongodb所在本地的路径为:C:\Users\Administrator\.gradle\caches\modules-2\files-2.1\org.mongodb\,打开该路径之后截图如下所示:



MongoDB 企业版下载 mongodb 安卓_mongodb_04



四、使用 MongoDB Mobile

(一)、初始化
// import com.mongodb.client.MongoCollection;


// 基础 Stitch 包


//  MongoDB Mobile 运行必需的组件
(二)、初始化MongoDB Mobile数据库,然后在应用程序中创建MongoDB Mobile客户端
// Create the default Stitch Client
final StitchAppClient client =
   Stitch.initializeDefaultAppClient("<APP ID>");

// Create a Client for MongoDB Mobile (initializing MongoDB Mobile)
final MongoClient mobileClient =
   client.getServiceClient(LocalMongoDbService.clientFactory);
(三)、您现在可以直接访问MongoDB Mobile。例如,要指向集合并插入文档,请使用以下代码:
(四)、本地路径

五、遇到的一些错误:

1、com.mongodb.embedded.client.MongoClientEmbeddedException

具体错误如下图所示:



MongoDB 企业版下载 mongodb 安卓_Android_05


  • 【原因】:MongoDB Mobile不支持x86设备。默认情况下,Android Studio会为AVD部署选择x86映像,刚好运行的模拟器使用了x86镜像,导致了这个错误的发生。
  • 【解决方案】:如果要将Android应用程序部署到AVD模拟器(即:AS自带模拟器),请务必为AVD选择x86_64或者arm的映像。

参考:BSON的介绍及BSON与JSON的区别