用android连接到MongoDB

时间:2018-02-27 20:40:34

标签: android mongodb kotlin

我试图在Android中连接到我的MongoDB数据库,但我遇到了问题。我明白了:

  

I / cluster:使用设置创建的集群{hosts = [mlab_string],mode = SINGLE,requiredClusterType = UNKNOWN,serverSelectionTimeout =' 30000 ms',maxWaitQueueSize = 500}

然后我得到:

  

I / cluster:PrimaryServerSelector从群集描述中选择的服务器ClusterDescription {type = UNKNOWN,connectionMode = SINGLE,all = [ServerDescription {address = mlab_string,type = UNKNOWN,state = CONNECTING}]}。在超时之前等待30000毫秒

是否有连接? 我使用this库作为MongoDB驱动程序,因为我读到android不支持官方驱动程序。我注意到这个库已经有2年没有更新了。有更新的替代品吗?是否有任何备用的免费NoSQL数据库正式支持android?

我在Asynctask中调用此方法来产生这些错误:

    fun insert(user: User){
    var client : MongoClient? = null
    try{
        val uri = MongoClientURI("mongodb://Username:Password@mlab_String")
        client = MongoClient(uri)
        val db = client.getDatabase(uri.database)
        val coll = db.getCollection("collname")
        coll.insertOne(user.returnAsDoc())
    }catch(e: Exception){
        e.printStackTrace()
    }finally{
        try{
            client!!.close()
        }catch(e2: Exception){
            e2.printStackTrace()
        }
    }
}

1 个答案:

答案 0 :(得分:0)

这些事情(涉及内部连接或不受支持的驱动程序;-))在Android上通常很难(甚至不可能)。

由于您要求替代方案,我建议http://objectbox.io/。 Afaik它是作为一个原生的NoSQL数据库实现的,这使得它非常快 您基本上可以直接存储对象,而不必先将它们转换为文档。